本文分享自天翼云开发者社区《云主机网络测试方法》,作者:高淑杰
测试指标
pps:表示通过 UDP 进行批量数据传输时的数据传输吞吐量,能反映网络极限转发能力。
bps:表示通过 TCP 进行批量数据传输时的数据传输吞吐量,能反映网络极限带宽能力。
使用netperf进行网络测试
0 环境准备
创建两台相同配置 ECS, 其中一台作为server,另一台作为client
规格:s7.xlarge.2
镜像:centos 8.2
1 工具安装
分别在两台ECS上安装netperf
tar zxvf netperf-2.7.0.tar.gz
cd netperf
./configure
make && make install
netserver -h
netperf -h
2 测试bps
在server端执行如下脚本
pkill netperf
pkill netserver
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
port=18000
count=$1
for j in `seq ${count:-$c_cpu}`; do
netserver -p $[$port+j] > /dev/null 2>&1 &
done
在client端执行如下脚本
pkill netperf
pkill netserver
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
server=server_ip
port=18000
time=300
count=$1
for j in `seq ${count:-$c_cpu}`; do
netperf -H ${server} -l ${time:-300} -t TCP_STREAM -p $[$port+j] -- -D > /dev/null 2>&1 &
done
sever端通过执行sar -n DEV 1 获取 rxkB/s,转换为带宽(kbps)=字节数(rxkB/s)*8,即为bps
3 pps测试
server端执行如下脚本
pkill netperf
pkill netserver
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
port=18000
count=$1
for j in `seq ${count:-$c_cpu}`; do
netserver -p $[$port+j] > /dev/null 2>&1 &
done
client端执行如下脚本
pkill netperf
pkill netserver
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
server=server_ip
port=18000
count=$1
time=300
for j in `seq ${count:-$c_cpu}`; do
netperf -H $server -p $[$port+j] -l ${time:-300} -t UDP_STREAM -- -m 1 -D > /dev/null 2>&1 &
done
在server 执行sar -n DEV 1查看rxpck/s 列,即为pps
使用iperf进行网络测试
0 环境准备
创建两台相同配置 ECS, 其中一台作为server,另一台作为client
规格:s7.xlarge.2
镜像:centos 8.2
1 工具安装
下载 rpm包 iperf3-3.1.3-1.fc24.x86_64.rpm
rpm -ivh iperf3-3.1.3-1.fc24.x86_64.rpm
iperf3 -h
2 bps测试
在serverd端执行如下脚本
pkill iperf3
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
count=$1
port=17000
for j in `seq ${count:$c_cpu}`; do
iperf3 -s -p $[$port+j] > /dev/null 2>&1 &
done
在client 端执行如下脚本
pkill iperf3
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
port=17000
server=10.3.128.18
count=$1
ths=`ethtool -l eth0 |grep Combined |tail -1 |awk '{print $2}'`
for j in `seq ${count:-$c_cpu}`; do
iperf3 -c $server -p $[$port+j] -t 60 -P $ths > /dev/null 2>&1 &
done
sever端通过sar -n DEV 1 获取 rxkB/s,转换为带宽(kbps)=字节数(rxkB/s)*8
3 pps测试
在server端执行如下脚本
pkill iperf3
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
count=$1
port=17000
for j in `seq ${count:$c_cpu}`; do
iperf3 -s -p $[$port+j] > /dev/null 2>&1 &
done
在client 端执行如下脚本
pkill iperf3
c_cpu=` cat /proc/cpuinfo |grep processor |wc -l`
port=17000
server=server_ip
count=$1
ths=`ethtool -l eth0 |grep Combined |tail -1 |awk '{print $2}'`
for j in `seq ${count:-$c_cpu}`; do
iperf3 -u -c $server -p $[$port+j] -t 300 -P $ths -l 16 -b 2048M -A $[($j-1)%$c_cpu] > /dev/null 2>&1 &
done
在server端执行sar -n DEV 1 查看rxpck/s 列 即为收包pps