You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

复制全文
下载 pdf
测试网络性能
使用Netperf测试网络性能
复制全文
下载 pdf
使用Netperf测试网络性能
本文介绍如何使用Netperf测试工具测试云服务器的网络性能。​
Netperf介绍​
Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/response)模式。Netperf测试结果主要反应系统向其他系统发送数据的速度,以及其他系统接收数据的速度。更多信息请参考Netperf官网。​
准备环境​
说明​
本文的测试结果仅作为参考,不代表云服务器的真实最优性能。​
测试时,参考通过向导购买实例,购买两台相同配置的Linux云服务器。云服务器A上安装Netperf的netserver作为服务器端,云服务器B上安装Netperf作为客户端。在不运行应用的情况下,云服务器B压测云服务器A(不指定数据包大小),测试云服务器A的网络TCP收带宽性能。网络压力持续时间为5分钟,取云服务器A收到压力50秒后持续200秒的带宽平均值。​
云服务器规划如下:​
​
主机名称​
内网IP地址​
角色​
benchmark-1​
192.168.xx.xx​
Server​
benchmark-2​
192.168.xx.xx​
Client​
​
安装Netperf​
  1. 执行以下命令,在 两台 云服务器上分别安装Netperf工具。​
  • ​
    wget https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.7.0​
    tar -xzvf netperf-2.7.0​
    yum install gcc sysstat -y​
    cd ./netperf-netperf-2.7.0​
    ./configure ​
    make && make install​
    ​
  1. 执行以下命令,验证安装状态。如果返回使用帮助即证明安装成功。​
  • netperf -p​
  • 参数说明:​
  • ​
    参数​
    说明​
    -p​
    要监听的端口号。​
    -H​
    接收端的IP地址。​
    -t​
    发包协议类型。​
    -l​
    测试时长。​
    -m​
    数据包大小,带宽建议“1440”,收发包建议“1”。​
    ​
测试网络性能​
测试TCP bps​
  1. 在Server端启动netserver进程,监听 12000 端口。​
  • netserver -p 12000​
  1. 在Client端执行以下命令,命令中IP地址为Server端的内网IP地址。​
  • netperf -H 192.168.xx.xx -p 12000 -t TCP_STREAM -l 300 -- -m 1440 &​
  1. 在Server端使用sar工具查看结果。​
  • sar -n DEV 1 200​
  • ​image.png​​
  • bps结果为rxkB/s的数值,单位换算:kB/s * 8/1000= Mbps​
测试TCP cps​
说明​
如需测试三代实例的TCP cps,您可以在测试前,参考TCP cps性能优化进行性能优化,以获取更优的cps。​
  1. 在Server端启动netserver进程,监听 12000 端口。​
  • netserver -p 12000​
  1. 在Client端执行以下命令,命令中IP地址为Server端的内网IP地址。​
  • netperf -H 192.168.xx.xx -p 12000 -t TCP_CRR -l 300 &​
  1. 在Server端使用sar工具查看结果。​
  • sar -n DEV 1​
  • ​alt​​
  • cps结果为 (rxpck/s的数值) /5。​
测试UDP pps​
  1. 在Server端启动netserver进程,监听 12000 端口。​
  • netserver -p 12000​
  1. 在Client端执行以下命令,命令中IP地址为Server端的内网IP地址。​
  • netperf -H 192.168.xx.xx -p 12000 -t UDP_STREAM -l 300 -- -m 1 &​
  1. 在Server端使用sar工具查看结果。​
  • sar -n DEV 1 200​
  • ​image.png​​
  • pps结果为rxpck/s的数值。​
附录​
TCP cps性能优化​
三代实例的TCP cps性能可能会受到以下因素影响,您可以参考下文优化云服务器配置以获得最佳的性能体验。​
  • 关闭eth0的XPS(仅三代实例涉及)​
  • 在两台实例上依次执行如下命令,关闭eth0的XPS。​
  • ​
    cd /sys/class/net/eth0/queues/​
    for i in `ls | grep tx` ; do cat $i/xps_cpus; done; #查看当前XPS配置​
    for i in `ls | grep tx` ; do echo "00000000" > $i/xps_cpus; done; #关闭tx xps;0的位数与当前xps_cpus一致​
    ​
  • 本文以ecs.g3a.8xlarge(32C)为例,如下图所示。​
  • ​alt​​
  • 中断绑核(仅三代AMD实例涉及)​
  1. 在两台实例上执行如下命令,对eth0进行中断绑核。​
  • ​
    #查看eth0设备队列个数​
    queue_num=$(ethtool -l eth0 | grep "Combined" | head -n 1 | awk '{print $2}')​
    ​
    #将中断绑到CPU 0-$queue_num-1上​
    cat /proc/interrupts | grep virtio | grep input | cut -d: -f1 | while read i; do echo -n "irq $i bind cpu: "; echo $((($i / 2) % $queue_num)) > /proc/irq/$i/smp_affinity_list; cat /proc/irq/$i/smp_affinity_list; done | sort -n -t ' ' -k2​
    ​
    cat /proc/interrupts | grep virtio | grep output | cut -d: -f1 | while read i; do echo -n "irq $i bind cpu: "; echo $((($i / 2) % $queue_num)) > /proc/irq/$i/smp_affinity_list; cat /proc/irq/$i/smp_affinity_list; done | sort -n -t ' ' -k2​
    ​
  1. Netperf绑核测试。​
  • 在Server端启动多个netserver进程监听端口,例如启动1024个进程。​
  • ​
    queue_num=$(ethtool -l eth0 | grep "Combined" | head -n 1 | awk '{print $2}')​
    ​
    for ((i = 0 ; i < 1024; i++)); do taskset -c $(($i % $queue_num)) netserver​
    -p $(($i + 12865)) & done​
    ​
  • 在Client端执行以下命令,命令中IP地址为Server端的内网IP地址。​
  • ​
    queue_num=$(ethtool -l eth0 | grep "Combined" | head -n 1 | awk '{print $2}')​
    ​
    for ((i = 0 ; i < 512; i++)); do taskset -c $(($i % queue_num)) netperf -H 192.168.xx.xx -p $(($i + 12865)) -t TCP_CRR -l 120 & done​
    ​
  • ​alt​​
  • ​alt​​
​
最近更新时间:2025.12.24 17:58:20
这个页面对您有帮助吗?
有用
有用
无用
无用