本文首发于个人公众号 CloudDeveloper(ID: cloud_dev),专一于干货分享,号内有大量书籍和视频资源,后台回复 「1024」便可领取,欢迎你们关注,二维码文末能够扫。
这是 Linux 性能分析系列的第五篇,前四篇在这里:node
一文掌握 Linux 性能分析之 IO 篇socket
在上篇网络篇中,咱们已经介绍了几个 Linux 网络方向的性能分析工具,本文再补充几个。总结下来,余下的工具包括但不限于如下几个:性能
因为篇幅有限,本文会先介绍前面两个,其余工具留做后面介绍,你们能够持续关注。测试
sar 是一个系统历史数据统计工具。统计的信息很是全,包括 CPU、内存、磁盘 I/O、网络、进程、系统调用等等信息,是一个集大成的工具,很是强大。在 Linux 系统上 sar --help
一下,能够看到它的完整用法。云计算
在平时使用中,咱们经常用来分析网络情况,其余几项的一般有更好的工具来分析。因此,本文会重点介绍 sar 在网络方面的分析手法。spa
Linux 系统用如下几个选项提供网络统计信息:code
咱们来看几个示例:
sar -n TCP 1
几个参数了解一下:
经过这几个参数,咱们基本能够知道当前系统 TCP 链接的负载状况。
sar -n DEV 1 | awk 'NR == 3 || $3 == "eth0"'
几个参数了解一下:
这几个参数对于分析网卡接收和发送的网络吞吐量颇有帮助。
sar -n EDEV 1
几个参数了解一下:
当发现接口传输数据包有问题时,查看以上参数可以让咱们快速判断具体是出的什么问题。
OK,这个工具就介绍到这里,以上只是抛砖引玉,更多技巧还须要你们动手去探索,只有动手,才能融会贯通。
traceroute 也是一个排查网络问题的好工具,它能显示数据包到达目标主机所通过的路径(路由器或网关的 IP 地址)。若是发现网络不通,咱们能够经过这个命令来进一步判断是主机的问题仍是网关的问题。
它经过向源主机和目标主机之间的设备发送一系列的探测数据包(UDP 或者 ICMP)来发现设备的存在,实现上利用了递增每个包的 TTL 时间,来探测最终的目标主机。好比开始 TTL = 1,当到达第一个网关设备的时候,TTL - 1,TTL = 0 致使网关响应一个 ICMP 超时报文,这样,若是没有防火墙拦截的话,源主机就知道网关设备的地址。以此类推,逐步增长 TTL 时间,就能够探测到目标主机之间所通过的路径。
为了防止发送和响应过程出现问题致使丢包,traceroute 默认会发送 3 个探测包,咱们能够用 -q x 来改变探测的数量。若是中间设备设置了防火墙限制,会致使源主机收不到响应包,就会显示 * 号。以下是 traceroute baidu
的结果:
每一行默认会显示设备名称(IP 地址)和对应的响应时间。发送多少个探测包,就显示多少个。若是只想显示 IP 地址能够用 -n 参数,这个参数能够避免 DNS 域名解析,加快响应时间。
和这个工具相似的还有一个工具叫 pathchar,但平时用的很少,我就不介绍了。
以上就是两个工具的简单介绍,工具虽然简单,但只要能解决问题,就是好工具。固然,性能分析不只仅依靠工具就能解决的,更多须要咱们多思考、多动手、多总结,逐步培养本身的系统能力,才能融会贯通。
参考:
iperf3
netperf netserver
https://www.jianshu.com/p/42e...
个人公众号 cloud_dev,号内有大量书籍和视频资源,后台回复 「1024」便可领取,分享的内容包括但不限于云计算虚拟化、容器、OpenStack、K8S、雾计算、网络、工具、SDN、OVS、DPDK、Linux、Go、Python、C/C++编程技术等内容,欢迎你们关注。