28 | 网络数据传输慢,问题到底出在哪了?
庄振运
该思维导图由 AI 生成,仅供参考
你好,我是庄振运。
你一定有过在网页或者手机上下载照片的体验,如果数据传输太慢,那你的体验一定十分糟糕。你看,互联网实体之间的数据快速传输对用户体验至关重要。这里涉及到的其实就是网络传输问题。所以,今天我们就通过生产实践中的案例,来探讨一下互联网服务中的数据传输性能。
说到底,网络传输问题其实就分两种:
数据根本没有传递;
数据传送速度较慢。
“数据没有传递”虽然看起来更严重,但是相对“数据传送缓慢”来说,更容易判断和解决。所以,这一讲,我们就重点解决第二种问题。我们一起来看看,为什么网络传送速度会慢,在众多原因中怎么快速诊断出关键问题来,又该如何去解决。
造成网络传输缓慢的原因很多,我们这一讲,就是帮助你快速诊断问题出在哪里:是客户端,是服务器端,还是网络本身?在此基础上,你才能专门针对具体的领域继续分析。
为什么数据传输慢?
我们先看一下,都有哪些可能的原因会导致数据传输缓慢呢?在宏观上,这种问题的可能原因可以分为三种场景:
客户端应用程序的原因;
网络的原因;
服务器应用程序的原因。
也就是说,可能是由于数据发送方过载,而没有向接收方发送数据;也可能是网络通道很慢;又或者是数据接收方的服务器太忙,从而无法从网络缓冲区读取数据。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何通过观察发送端和接收端的队列情况来快速诊断网络数据传输慢的问题所在。当客户端接收数据缓慢时,接收队列非零表示客户端应用程序是性能瓶颈;服务器端发送数据缓慢时,发送队列为零表示服务器应用程序是性能瓶颈;如果客户端接收队列为零,而服务器发送队列非零,则网络本身是性能瓶颈。文章还介绍了TCP层面的特征和工具的使用方法,帮助读者快速了解网络数据传输慢的问题所在及解决方法。此外,文章提出了基于状态转移的解决方案,通过收集客户端和服务器端的关键信息,以及观察数据请求和传输流程图,来快速诊断数据传输问题。通过状态机的解决方案,读者可以清晰地了解HTTP数据传输的过程,并快速判断问题出现的位置。最后,文章强调了快速诊断问题的重要性,以及根据TCP的Send和Receive队列大小变化来快速诊断问题的方案。整体而言,本文为读者提供了一种快速诊断网络数据传输慢问题的方法,帮助他们更好地理解和解决相关技术挑战。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《性能工程高手课》,新⼈⾸单¥59
《性能工程高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- LQQ老师说的任意指也包括零和非零吗?这一块有点懵,比如receiveQ是非0,sendQ是任意,如果是任意也就是说sendQ也可以有值,那怎么断定是数据消费太慢呢?2020-05-081
- Geek_8363c3ethtool是个好东西2021-11-16
- 张翠山如果判断出服务端或者客户端慢了。怎么定位慢的原因呢。2020-05-04
- 钱网络通信是互联网技术的底座,由于涉及的东西较多,出现问题也不好排查,老师把她抽象成了三部分:发送方、传输方、接收方,问题也主要在这三者之间,发生慢?传输慢?接收慢?具体是谁的问题,可以通过netstat/ss命令来观察发送队列和接收队列的情况来判断,不过即使判断出来了,也不太好解决,只能划分一下责任,有时通过方法监控的调用链就能搞清楚,不过网络是基础设施这个存在问题,处理的话需要升级到部门或公司的层面。2020-03-11
- 我来也以前只知道通过netstat 的sendq recvq看是否发生了拥塞,先不到老师结合两边的socket状态来判断是哪方的原因。学习了! netstat经常使用,倒是ss用的不太多。2020-02-06
收起评论