Linux网站打开慢之mtr工具探测分析

一个Web应用,通过浏览器来访问,发现页面加载很慢,我们可以用下面的步骤来初步排查问题:
一、初步排查方法
0、打开浏览器调试模式,简单看看是否有报错,加载明显慢的资源。【如有,代码优化】
1、ping域名,看解析是否正常。
2、切换其他网络,比如4G,查看是否正常。或者借助第三方网络测试工具,测试全国其他节点
http://tool.chinaz.com/speedtest.aspx
3、登陆服务器,查看负载、带宽是否正常。

如果经过以上初步排查,依旧无法定位问题,那么可以从网络问题的方向去考虑
二、排查网络问题方法
0、ping出现明显丢包

1、做链路测试。使用mtr网络链路工具探测下异常的双向网络链路,核实下是否是中间异常的网络问题
1.1、mtr是什么
mtr(My traceroute)是一个网络诊断工具(a network diagnostic tool)。mtr基于ICMP协议(Internet Control Message Protocol网络控制消息协议)在IP主机和路由器直接传递ICMP数据包,用于探查网络通不通、主机是否可达、路由是否可用。

mtr -[rc] hostname/ip

1.2、mtr参数

-r 以报告模式显示
-c 设置每秒发送数据包的数量,默认值是10

1.3、安装
Mac OS下安装

brew install mtr

1.3.1、运行mtr提示路径:/usr/local/Cellar/mtr/0.92/sbin/mtr(/usr/local/sbin/mtr)
运行sudo /usr/local/Cellar/mtr/0.92/sbin/mtr
mtr: Failure to start mtr-packet: Invalid argument
解决:建立软链:

ln -sv /usr/local/sbin/mtr  /usr/local/bin/
ln -sv /usr/local/sbin/mtr-packet /usr/local/bin/

1.3.2、运行mtr提示错误
Failure to open IPv4 sockets: Operation not permitted
Failure to open IPv6 sockets: Operation not permitted
mtr: Failure to start mtr-packet: Invalid argument
注意:Mac下运行mtr需要sudo权限

解决:需要加上sudo

sudo mtr ip

Centos 下安装

yum install mtr

1.4、客户端到服务端的链路测试
使用mtr命令,然后输入服务器的ip

默认配置下,返回结果中各数据列的说明如下:

第一列(Host): 节点 IP 地址和域名。如前面所示,按 n 键可以切换显示。
第二列(Loss%):节点丢包率。
第三列(Snt):每秒发送数据包数。默认值是 10,可以通过参数 -c 指定。
第四列(Last):最近一次的探测延迟值。
第五、六、七列(Avg、Best、Wrst):分别是探测延迟的平均值、最小值和最大值。
第八列(StDev):标准偏差。越大说明相应节点越不稳定。

1.5、服务端到客户端的链路测试
使用mtr命令,后面输入您本地客户端的公网ip地址,探测3分钟

注:浏览器访问http://ip.taobao.com 即可获得本地公网IP(左下角即是)。

注意:这里需要双方向测试,客户端到服务器端,及服务器端到客户端测试。主要分别看两者双方向路由节点是否正常

1.6、mtr报告丢包分析
分析mtr报告主要关注丢包和延时,这里分析丢包情况
在分析之前我们首先要明白两点:
1.6.1、mtr会以递增增加的TTL发送ICMP数据包,以便查看数据包在源和目的地之间进行的路由或一系列跳数。
1.6.2、向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪,称为ICMP攻击,所以运营商一般会对ICMP数据包做带宽限制。
1.6.3、一般首先看最后一跳,如果最后一跳有丢包,那么这个分析才是有意义的。因此判断是否丢包,丢在哪里,看最后几跳是最明显的。不要因报告的100%损失而感到震惊。这并不表示有问题。你可以看到后续的跳数没有损失。例如上图18、19跳。

参考:
Linux实例网站访问丢包延时高
Windows实例网络访问丢包延时高
《Install mtr on Mac OSX》
如何用MTR诊断网络问题
用ping ,mtr ,traceroute 进行网络丢包分析

发表评论

电子邮件地址不会被公开。 必填项已用*标注