此方案来源于阿里云
pps测试
步骤
- 分别在测试机和辅助测试机上执行以下命令,下载Netperf。
shell
wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
- 分别在测试机和辅助测试机上执行以下命令,安装Netperf和sar监控工具。
shell
sudo yum install -y gcc autoconf automake libtool sysstat
tar -zxvf netperf-2.7.0.tar.gz
- 查看gcc的版本(版本需要大于10)
shell
gcc -v 2>&1
- 编译之前修改代码
shell
cd netperf
vim src/nettest_omni.c
c
# 去掉下面文件中的代码
/* different options for the sockets */
int
loc_nodelay, /* don't/do use NODELAY locally */
rem_nodelay, /* don't/do use NODELAY remotely */
loc_sndavoid, /* avoid send copies locally */
loc_rcvavoid, /* avoid recv copies locally */
rem_sndavoid, /* avoid send copies remotely */
rem_rcvavoid; /* avoid recv_copies remotely */
- 编译并安装
shell
cd netperf
sudo ./configure
sudo make && sudo make install
- 查看测试机的ip
shell
ifconfig
- 在测试机上执行以下命令,启动64个netserver服务。
shell
#!/bin/bash
for j in `seq 64`; do
netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1 &
done
- 在辅助测试机上执行以下命令,向测试机输入流量。
shell
#!/bin/bash
server_ip=<测试机私网IP地址>
for j in `seq 64`; do
port=$[16000+j]
netperf -H ${server_ip} -l ${run_time:-300} -t UDP_STREAM -p $port -- -m 1 -D > /dev/null 2>&1 &
done
- 在测试机上执行以下命令,测试网络PPS。
shell
sar -n DEV 1

带宽
前面8个步骤的都是一样的,这里从第9步开始描述
- 在辅助测试机上执行以下命令,向测试机输入流量。
shell
#!/bin/bash
server_ip=<测试机私网IP地址>
for j in `seq 64`; do
port=$[16000+j]
netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 &
done
- 在测试机上执行以下命令,测试网络带宽。
shell
sar -n DEV 1

延时
- 分别在测试机和辅助测试机上执行以下命令,安装sockperf。
shell
sudo yum install -y autoconf automake libtool gcc-c++
cd /opt
sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
sudo tar -zxf 3.8.tar.gz
cd sockperf-3.8/
sudo ./autogen.sh
sudo ./configure
sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
sudo make install
- 在测试机上执行以下命令,启动服务。
shell
sockperf sr --tcp --daemonize
- 在辅助测试机上执行以下命令,向测试机输入流量。
shell
sockperf pp -i <测试机私网IP地址> --tcp -t 30 -m 14 --full-log=result.json
- 以avg-latency开头的结果数据表示平均时延,单位为us。
- 以percentile 99.000开头的结果数据表示99分位时延,单位为μs。
