在构建或管理一个网络系统时,我们更多的是关心网络的可用性,即网络是否连通,而对于其整体的性能往往考虑不多,或者即使考虑到性能的问题,但是却发现没有合适的手段去测试网络的性能
当开发出一个网络应用程序后,我们会发现,在实际的网络环境使用中,网络应用程序的使用效果不是很理想,问题可能出现在程序的开发上面,也有可能由于实际的网络环境中存在着瓶颈
面对这种问题,程序员一般会一筹莫展,原因就在于不掌握一些网络性能测量的工具
在本文中,首先介绍网络性能测量的一些基本概念和方法,然后结合 netperf 工具的使用,具体的讨论如何测试不同情况下的网络性能
网络性能测试概述 网络性能测量的五项指标 测量网络性能的五项指标是: 可用性(availability) 响应时间(response time) 网络利用率(network utilization) 网络吞吐量(network throughput) 网络带宽容量(network bandwidth capacity) 1. 可用性 测试网络性能的第一步是确定网络是否正常工作,最简单的方法是使用 ping 命令
通过向远端的机器发送 icmp echo request,并等待接收 icmp echo reply 来判断远端的机器是否连通,网络是否正常工作
Ping 命令有非常丰富的命令选项,比如 -c 可以指定发送 echo request 的个数,-s 可以指定每次发送的 ping 包大小
网络设备内部一般有多个缓冲池,不同的缓冲池使用不同的缓冲区大小,分别用来处理不同大小的分组(packet)
例如交换机中通常具有三种类型的包缓冲:一类针对小的分组,一类针对中等大小的分组,还有一类针对大的分组
为了测试这样的网络设备,测试工具必须要具有发送不同大小分组的能力
Ping 命令的 -s 就可以使用在这种场