netperf网络性能检测工具-嵌入式

时间:2021-07-25 20:22:50

netperf工具

 Netperf工具以client/server方式工作。server端是netserver,用来侦听来自client端的连接,client端是netperf,用来向server发起网络测试。在client与server之间,首先建立一个控制连接,传递有关测试配置的信息,以及测试的结果;在控制连接建立并传递了测试配置信息以后,client与server之间会再建立一个测试连接,用来来回传递着特殊的流量模式,以测试网络的性能。

嵌入式平台编译和安装

首先环境搭建gcc 和交叉编译工具,gcc工具需要编译x86下运行的server端可执行程序netserver工具,交叉编译工具编译的是,嵌入式平台上运行的netperf可执行工具。

编译工具版本:

sudo apt-get install build-essential执行一键安装

arm-linux-gcc-4.4.3.tar   嵌入式交叉编译工具链,这个版本工具链,需要使用对应编译嵌入式平台上的工具,否则可能会由于使用的动态库问题,造成netperf不能使用,或者系统崩溃。

netperf-2.6.0.tar www.netperf.org下载源码包。

进入netperf解压缩后的目录,ARM嵌入式平台netperf和netserver生成工具:

./configure CC=arm-linux-gcc--host=arm-linux --prefix=/opt/arm ac_cv_func_setpgrp_void=yes

make

make install

X86平台netperf和netserver生成工具:

./configure --prefix=/opt/x86ac_cv_func_setpgrp_void=yes

make

make install

这样会在/opt/arm和/opt/x86目录下均生成bin目录,目录中将是netperf和netserver两个可执行elf文件。 –prefix安装目录前缀指定。将netperf可执行文件拷贝到嵌入式平台即可。

运行netperf时,出现-sh:.netperf : not found时,这个显示原因是没有动态库,将相应的动态库拷贝到嵌入式平台的/lib目录下即可。动态库的查找方法如下: 使用arm-linux-readelf -d netperf,显示结果截图如下,需要三个动态库,这三个动态库文件在交叉编译环境中的/lib库目录里。

netperf网络性能检测工具-嵌入式

如果觉得使用动态库的方式过于麻烦,则可以在./configure前加LDFLAGS标志。如下

LDFLAGS="-static" ./configure ...

设置嵌入式平台的ip和网关, ifconfig eth0 10.XXX.XXX.221 netmask 255.255.255.0
                                                    route add default gw 10.XXX.XXX.254

通过nfs文件系统的方式可以将netperfelf文件传送过去
mount -t nfs -o nolock 10.1.14.104:/workteam/geshichao/data/nfs /mnt


实际测试样例

根据步骤三所示的,这里给出几个测试截图:

TCP批量(STREAM)测试,./netperf -H 10.XX.14.XXX 测试结果:88.26M/s

netperf网络性能检测工具-嵌入式

TCP批量(STREAM)测试分组变大,可用于测试交换机分组对性能的影响,./netperf -H 10.XX.14.XXX 测试结果:88.27M/s,这里显示的结果很好,说明交换机比较好。

netperf网络性能检测工具-嵌入式

TCP多连接测试,可用于测试数据库类每次建立连接情况的应用场景,./netperf -t TCP_RR -H 10.XX.14.XXX,平均交易数2440.79/s 

netperf网络性能检测工具-嵌入式

TCP多连接测试,可用于测试数据库类每次建立连接情况的应用场景,./netperf -t UDP_RR -H 10.XX.14.XXX,平均交易数2573.68次/s

netperf网络性能检测工具-嵌入式