为什么要测量带宽、延迟、抖动和丢包率?
当我们说网络环境好的时候,通常意味着我们访问网站的“感觉”就打开了。但是相反,如果一个网站开了很久,网络环境会不好吗?不一定,但网站本身可能有问题。如果这是自己的网站,就不会想反复刷新页面,或者多带几台电脑,以“感觉”的速度作为判断依据。我们需要更可靠的技术手段。这些指标是判断服务器网络是否良好的基本指标。
除了故障排除外,在以下情况下还需要了解这些参数:
购买VPS:购买VPS,特别是国外VPS时,您可能想知道能否在国外和国内无缝访问VPS,尤其是带宽参数是否与实际购买一致。性能测试:要对web站点执行性能测试,必须确保网络环境满足指标要求。什么指标合格?
首先,没有一般指标,不同的应用程序需要的指标也不同,因为访问IP电话、视频和网站所需的网络指标要求不同。这里只分析网站访问。
从服务器环境的角度来看,服务器只能控制自己的带宽,但不能控制最终用户实际访问的环境。服务器要做的是在恶劣的环境下提供更好的体验。这不是本文的主题,所以在谈论指标时,并不意味着服务器的观点。
从用户(开发人员或最终用户)环境的角度来看,如果站点本身满足要求(Google Pagespeed Insight达到90分以上),则网络环境必须满足哪些指标,用户才能快速打开我们的站点。这个本身也是经验指标,没有定论。以下指标是我在进行性能测试时要求的指标,与普通用户相比,访问网站更高,因此可以满足这个指标。网络环境没问题。
带宽:与服务提供商提供的最大带宽大致相当的延迟时间:100毫秒抖动:20毫秒数据包丢失率:1%的测量方法
测量服务器带宽
使用Iperf工具测试服务器带宽。服务器带宽分为服务器和客户端,需要在两侧安装iperf工具。在Linux上,可以通过yum或apt-get直接安装。
在服务器端(假定IP为106.14.26.11)运行iperf服务:
#iperf -s
-银
Server listening on TCP port 5001
Tcp windows size : 85.3 kbyte(默认)
这是一台下行带宽均接近100 mbits/秒的服务器,实测数据不应偏离此数字太远。
客户端
上行和下行带宽测试
$iperf -c 106.14.26.11 -t 60 -d
-银
Server listening on TCP port 5001
Tcp windows size : 85.3 kbyte(默认)
-银
-银
客户端连接至45.32.64.187、TCP端口5001
Tcp window size : 197 kbyte(默认)
-银
[4]local 104 . 250 . 144 . 8 port 50040 connected with 106 . 14 . 26 . 11 port 5001
[5]local 104 . 250 . 144 . 8 port 5001 connected with 106 . 14 . 26 . 11 port 34386
[ID] Interval Transfer Bandwidth
[4]0 . 0-60 . 0 sec 658 Mbytes 92 . 0 mbits/sec #上行链路带宽
[5]0.0-60.4 sec 628 Mbytes 87.4 mbits/sec #下行带宽
测试结果显示,上行带宽为92.0Mbits/sec,下行带宽为87.2Mbits/sec,低于服务器的100Mbits/sec,但并没有低得离谱。
如果客户端无法连接到iperf服务器,则主机上的防火墙拦截或VPS提供程序可能已进行了限制。在前一种情况下,可以通过iptables解决。在后一种情况下,有多种解决方案,如修改VPS提供者的控制台、与VPS提供者联系,以及将端口修改为外部可访问的端口。
延迟、抖动和丢包率测量
延迟、抖动、丢包率、直接PING测试即可。要测量这个值,最好抓住100个数据包测试。
$ ping -c 100 www.baidu.com
PING www.a. ): 56 data bytes
64 bytes from 163 . 177 . 151 . 1093360 icmp _ seq=0 TTL=55 time=26 . 639 ms
64 bytes from 163 . 177 . 151 . 1093360 icmp _ seq=1 TTL=55 time=24 . 329 ms
64 bytes from 163 . 177 . 151 . 1093360 icmp _ seq=2 TTL=55 time=24.794 ms
64 bytes from 163 . 177 . 151 . 1093360 icmp _ seq=3 TTL=55 time=22.709 ms
64 bytes from 163 . 177 . 151 . 1093360 icmp _ seq=4 TTL=55 time=39.994 ms
64 bytes from 163 . 177 . 151 . 1093360 icmp _ seq=5 TTL=55 time=50.786 ms。省略
C.
- www.a. ping statistics -
100 packets transmitted、100 packets received、0.0% packet loss #最后这个比率是数据包丢失率
round-trip min/avg/max/STD dev=21.505 ms #分别表示最小延迟、平均延迟、最大延迟和抖动(抖动是延迟标准差)
根据以上结果,我们得出了结论:
延迟:26.743毫秒
抖动: 6.613毫秒
数据包丢失率3360 0.0%
上面的实验都是有时间可以做的,但还是很有用的。
如果觉得有用的话,可以拭目以待~