【原文链接】Netperf----x86架构openEuler操作系统对网络进行性能测试
(1)Netperf是一种网络性能测试工具,主要基于TCP或UDP的传输。可以测量TCP和UDP传输的吞吐量、时延、CPU 占用率等性能参数。Netperf测试结果所反映的是一个系统能够以多块的速度向另一个系统发送数据,以及另一个系统能够以多块的速度接收数据。
(2)打开 netperf的github仓库 ,若打不开github,也可以从 netperf的gitee仓库 ,这个gitee平台设置了每30分钟与github平台同步一次,这里以github平台为例,点击发布的tags列表
(3)找到 tar.gz的包,鼠标右键复制链接,比如这里是 https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.tar.gz
(4)这里准备两台openEuler操作系统的虚拟机分别作为客户端和服务端,为后续顺序测试,在客户机端和服务端都将iptables关闭,即执行如下命令
systemctl stop iptables
(5)首先在客户端虚拟机上执行如下命令下载netperf
wget https://github.com/HewlettPackard/netperf/archive/refs/tags/netperf-2.7.0.tar.gz
如下图所示
(6)使用如下命令解压
tar -zxvf netperf-2.7.0.tar.gz
若提示找不到tar命令,则需要安装tar工具
dnf install -y tar
(7)执行如下命令安装依赖
dnf install automake -y
(8)然后执行如下命令编译安装
cd netperf-netperf-2.7.0/
echo 'ac_cv_func_setpgrp_void=yes' > config.cache
./autogen.sh
/configure CC=${CROSS_COMPILE}gcc CFLAGS=-static --host=x86 --build=x86 CFLAGS=-fcommon --config-cache
make
make install
(9)然后再服务端虚拟机上执行如下命令安装netperf
dnf install -y netperf
(10)继续在服务端虚拟机上执行如下命令启动服务端监听服务
netserver
如下所示
(11)然后回到客户端虚拟机上,进入netperf中的src目录中,生成test_netperf.sh 测试脚本测试脚本内容如下
#!/bin/bash
host_ip=$1
for i in 1 64 128 256 512 1024 1500 2048 4096 9000 16384 32768 65536;do
./netperf -t TCP_STREAM -H $host_ip -l 60 -- -m $i
done
for i in 1 64 128 256 512 1024 1500 2048 4096 9000 16384 32768;do
./netperf -t UDP_STREAM -H $host_ip -l 60 -- -m $i -R 1
done
./netperf -t TCP_RR -H $host_ip
./netperf -t TCP_CRR -H $host_ip
./netperf -t UDP_RR -H $host_ip
此时可以将执行测试的脚本修改权限,如下所示
其中的含义如下
-
TCP_STREAM: client端向server端发送批量TCP数据
-
UDP_STREAM:client端向server端发送批量UDP数据
-
TCP_RR和TCP_CRR:前者是在同一个连接中进行多次request和response请求,后者是每次请求新建一个连接(HTTP)
-
UDP_RR:使用UDP进行request和response请求
(12)然后执行如下命令启动测试脚本,其中ip地址为服务端虚拟机的ip地址
sh test_netperf.sh 192.168.19.117
(13)执行结果如下所示