网络性能的常用指标包括:延时、带宽、抖动、丢包率,下面分别来说明一下。
延时(Latency)
延时是指数据包在网络中从一端传输到另一端所需的时间。延时越小说明网络质量高。
通常可以使用 ping 命令测试网络延时,例如:
C:\> ping 12.34.56.4
Pinging 12.34.56.4 with 32 bytes of data:
Reply from 12.34.56.4: bytes=32 time=52ms TTL=63
Reply from 12.34.56.4: bytes=32 time=51ms TTL=63
Reply from 12.34.56.4: bytes=32 time=51ms TTL=63
Reply from 12.34.56.4: bytes=32 time=51ms TTL=63
Ping statistics for 12.34.56.4:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 51ms, Maximum = 52ms, Average = 51ms 最后一行显示当前主机到达服务器的网络最小延时为 51ms,最大延时为 52ms,平均延时为 51ms。
如果主机和服务器都在同一个局域网,网络延时通常会小于 1ms。如果延时过高,则需要排查局域网内的网络设备(路由器、交换机、网卡、网线等)以及服务器的网络配置等。
带宽(Bandwidth)
带宽是特定时间内(通常为1秒)网络能够从一个节点传输到另一个节点的最大数据量。带宽越大说明网络承载能力越高。
通常可以使用 iperf3 工具测试网络带宽。在服务器上启动 iperf3 服务:
$ iperf3 -s -s 参数表示运行服务进程。
在当前主机上运行带宽测试:
C:\> iperf3 -c 12.34.56.4
Connecting to host 12.34.56.4, port 5201
[ 5] local 12.34.56.2 port 51828 connected to 12.34.56.4 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 1.12 MBytes 9.37 Mbits/sec
[ 5] 1.01-2.01 sec 384 KBytes 3.15 Mbits/sec
[ 5] 2.01-3.01 sec 384 KBytes 3.14 Mbits/sec
[ 5] 3.01-4.01 sec 384 KBytes 3.15 Mbits/sec
[ 5] 4.01-5.02 sec 384 KBytes 3.13 Mbits/sec
[ 5] 5.02-6.00 sec 384 KBytes 3.19 Mbits/sec
[ 5] 6.00-7.01 sec 384 KBytes 3.12 Mbits/sec
[ 5] 7.01-8.01 sec 384 KBytes 3.13 Mbits/sec
[ 5] 8.01-9.01 sec 256 KBytes 2.10 Mbits/sec
[ 5] 9.01-10.01 sec 512 KBytes 4.19 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 4.50 MBytes 3.77 Mbits/sec sender
[ 5] 0.00-10.06 sec 4.00 MBytes 3.33 Mbits/sec receiver -c 参数指定服务器端的 IP 地址。
最后两行的 Bitrate 列分别表示上传带宽和下载带宽,分别为 3.77MBits/sec 和 3.33 MBits/sec。
抖动(Jitter)和丢包率(Drop)
抖动是通过同一连接传输的不同数据分组的最小延时和最大延时之间的时间差。抖动越小说明网络越稳定。
丢包率是网络中未能成功传输到达目的地的数据包比例。丢包率越小说明网络质量越高。
使用 iperf3 可以同时测试网络的抖动和丢包率。服务器开启 iperf3 服务(参考上文),当前主机运行测试命令:
C:\> iperf3 -c 12.34.56.4 -u -R -b 3.77Mb
Connecting to host 12.34.56.4, port 5201
Reverse mode, remote host 12.34.56.4 is sending
[ 5] local 12.34.56.2 port 52378 connected to 12.34.56.4 port 5201
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 464 KBytes 3.79 Mbits/sec 0.381 ms 0/344 (0%)
[ 5] 1.00-2.00 sec 461 KBytes 3.77 Mbits/sec 0.239 ms 0/342 (0%)
[ 5] 2.00-3.01 sec 461 KBytes 3.76 Mbits/sec 0.785 ms 0/342 (0%)
[ 5] 3.01-4.00 sec 460 KBytes 3.77 Mbits/sec 0.243 ms 0/341 (0%)
[ 5] 4.00-5.01 sec 464 KBytes 3.78 Mbits/sec 0.189 ms 0/344 (0%)
[ 5] 5.01-6.01 sec 451 KBytes 3.70 Mbits/sec 0.412 ms 5/340 (1.5%)
[ 5] 6.01-7.01 sec 394 KBytes 3.22 Mbits/sec 0.364 ms 50/342 (15%)
[ 5] 7.01-8.01 sec 395 KBytes 3.22 Mbits/sec 0.544 ms 51/344 (15%)
[ 5] 8.01-9.01 sec 394 KBytes 3.22 Mbits/sec 0.347 ms 50/342 (15%)
[ 5] 9.01-10.00 sec 388 KBytes 3.22 Mbits/sec 0.291 ms 49/337 (15%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-10.06 sec 4.52 MBytes 3.77 Mbits/sec 0.000 ms 0/3435 (0%) sender
[ 5] 0.00-10.00 sec 4.23 MBytes 3.55 Mbits/sec 0.291 ms 205/3418 (6%) receiver 测试命令中的 -u 参数表示使用 UDP 协议发送数据包,-R 表示从服务器端发送数据到当前主机(固定用法),-b 表示测试时发送数据包的带宽。也就是说,测试抖动和丢包率都是在给定带宽的前提下进行的,通常参考的带宽为100%带宽和70%带宽。
上面的测试结果表明,在测试带宽为 3.77Mbits/sec 的情况下,当前主机发送的抖动和丢包率分别为 0.000ms 和 0%,当前主机接收的抖动和丢包率分别为 0.291ms 和 6%。
(完)