And*_*ter 14 networking ping test benchmark
我有一个当前连接速度为 100Mbit 的网络服务器,我的提供商提供升级到 1Gbit。我知道这是指吞吐量,但数据包越大,它们的传输速度也就越快,所以我预计响应时间(例如 ping)会略有减少。有没有人对此进行过基准测试?
具有 30 字节负载的示例(100mbit 到 100mbit 服务器):
> ping server -i0.05 -c200 -s30
[...]
200 packets transmitted, 200 received, 0% packet loss, time 9948ms
rtt min/avg/max/mdev = 0.093/0.164/0.960/0.093 ms
Run Code Online (Sandbox Code Playgroud)
具有 300 字节负载(低于 MTU)的示例(100mbit 到 100mbit 服务器):
> ping server -i0.05 -c200 -s300
[...]
200 packets transmitted, 200 received, 0% packet loss, time 10037ms
rtt min/avg/max/mdev = 0.235/0.395/0.841/0.078 ms
Run Code Online (Sandbox Code Playgroud)
所以从 30 到 300 的平均值。延迟从 0.164 增加到 0.395 - 我希望这对于 1gibt 到 1gbit 的连接来说是一个较慢的增长。我什至希望 100mbit 到 1gbit 更快,如果连接是通过一个首先等待直到它收到整个数据包的交换机。
更新:请仔细阅读答案的评论!连接没有饱和,我认为这种速度的提高对人类对一个请求来说并不重要,但它是关于许多请求的加起来(Redis、数据库等)。
关于@LatinSuD 的回答:
> ping server -i0.05 -c200 -s1400
200 packets transmitted, 200 received, 0% packet loss, time 9958ms
rtt min/avg/max/mdev = 0.662/0.866/1.557/0.110 ms
Run Code Online (Sandbox Code Playgroud)
EEA*_*EAA 15
如果当前的 100Mbit 链路饱和,延迟会明显下降的唯一方法。如果它没有饱和,您可能不会注意到任何变化。
此外,您认为 1Gbit 链路将能够支持更大数据包的假设是不正确的。最大数据包大小由沿数据包路径的各种设备的 MTU 决定 - 从您服务器上的 NIC 开始,一直到您客户计算机的 MTU。在内部 LAN 应用程序中(当您可以控制路径上的所有设备时),有时可以增加 MTU,但在这种情况下,您几乎无法使用默认的 MTU 1500。如果您发送的数据包大于也就是说,它们最终会变得支离破碎,从而实际上降低了性能。
And*_*ter 14
YES gbit 具有较低的延迟,因为:
但是,只有当数据包具有特定大小时,改进才会明显:
因此,如果您的应用程序对延迟非常敏感(4ms 对 0.8ms,往返 20kb)并且需要传输更大的包,那么从 100mbit 切换到 gbit 可以减少延迟,即使您使用远低于平均 100mbit/s(= 链路不会永久饱和)。
服务器 (100mbit) -> 交换机 (gbit) -> 服务器 (100mbit):
size: 56 :: rtt min/avg/max/mdev = 0.124/0.176/0.627/0.052 ms
size: 100 :: rtt min/avg/max/mdev = 0.131/0.380/1.165/0.073 ms
size: 300 :: rtt min/avg/max/mdev = 0.311/0.463/2.387/0.115 ms
size: 800 :: rtt min/avg/max/mdev = 0.511/0.665/1.012/0.055 ms
size: 1000 :: rtt min/avg/max/mdev = 0.560/0.747/1.393/0.058 ms
size: 1200 :: rtt min/avg/max/mdev = 0.640/0.830/2.478/0.104 ms
size: 1492 :: rtt min/avg/max/mdev = 0.717/0.782/1.514/0.055 ms
size: 1800 :: rtt min/avg/max/mdev = 0.831/0.953/1.363/0.055 ms
size: 5000 :: rtt min/avg/max/mdev = 1.352/1.458/2.269/0.073 ms
size: 20000 :: rtt min/avg/max/mdev = 3.856/3.974/5.058/0.123 ms
Run Code Online (Sandbox Code Playgroud)
服务器 (gbit) -> 交换机 (gbit) -> 服务器 (gbit):
size: 56 :: rtt min/avg/max/mdev = 0.073/0.144/0.267/0.038 ms
size: 100 :: rtt min/avg/max/mdev = 0.129/0.501/0.630/0.074 ms
size: 300 :: rtt min/avg/max/mdev = 0.185/0.514/0.650/0.072 ms
size: 800 :: rtt min/avg/max/mdev = 0.201/0.583/0.792/0.079 ms
size: 1000 :: rtt min/avg/max/mdev = 0.204/0.609/0.748/0.078 ms
size: 1200 :: rtt min/avg/max/mdev = 0.220/0.621/0.746/0.080 ms
size: 1492 :: rtt min/avg/max/mdev = 0.256/0.343/0.487/0.043 ms
size: 1800 :: rtt min/avg/max/mdev = 0.311/0.672/0.815/0.079 ms
size: 5000 :: rtt min/avg/max/mdev = 0.347/0.556/0.803/0.048 ms
size: 20000 :: rtt min/avg/max/mdev = 0.620/0.813/1.222/0.122 ms
Run Code Online (Sandbox Code Playgroud)
=在多台服务器上平均减少 80% 的 20kb ping 延迟
(如果只有一个链接是 gbit,则 20kb ping 的延迟仍将减少 5%。)