嵌入式 netperf2交叉编译

1、下载netperf2.5.0.tar.gz,解压缩到/opt/netperf2.5.0

2、cd /opt/netperf2.5.0

./configure CC=arm-linux-gcc --host=arm-linux--prefix=/usr/local/netperf2

出现如下错误:

checking types of argumentsfor select... int,fd_set *,struct timeval *
checking whether setpgrp takes no argument...configure: error: cannot check setpgrp when crosscompiling
3、在网上搜索,说这个问题是由于在语句中判断是否ac_cv_func_setpgrp_void设置, 如果没有设置,交叉编译必然会出错。网上一般会出现两种解决方法:

  • 注释掉configure文件中相应代码,即注释掉cannot check setpgrp when crosscompiling的下一行 { (exit 1);exit 1;};但在netperf2.5.0的configure文件中并不存在这一行,所以采用另外一种方法。
  • 既然是检测ac_cv_func_setpgrp_void是否设置,那就再./configure之前先进行设定,即运行如下命令:

echo "ac_cv_func_setpgrp_void=yes" >config.cache
再运行:

./configureCC=arm-linux-gcc --host=arm-linux --prefix=/usr/local/netperf2--config-cache

交叉编译通过。

4、make make install

5、移植

将bin目录下netserver/netperf拷贝到arm板的home目录下

6、测试

先运行./netserver

再运行./netperf -H 10.0.1.101测试本机

./netperf-H 10.0.1.10测试远程。

在测试的过程中,出现过这样一个错误:netperf:remote error 998,网上查找说是,远端的netserver版本太老,不能提供对应的测试功能,将远端netperf改成netperf2.5.0版本后,问题解决。

7、问题

在运行./netperf -t UDP_STEAM -H 10.0.1.10 -- -m 1024时,出现如下错误:

netperf: receive_response:no response received. errno 22 counter 0

网上搜到的解决方法是说:

may be that you have afirewall running interfering with the connection.
linux errno 22 means: "Invalid argument".
将防火墙关掉后,问题不再出现。

1 官方网站

http://www.netperf.org/netperf/

2 Netperf介绍

  Netperf是一种网络性能的测试工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulkdatatransfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多快的速度接收数据。

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

3 Netperf安装

下载:http://www.netperf.org/netperf/

在linux下安装,先下载完成后,运行如下操作:

tar zxvf netperf-2.6.0.tar.gz

cd netperf-2.6.0

./configure

make

make install

4 Netperf应用介绍

1 Netperf可以模拟三种不同的TCP流量模式:
1) 单个TCP连接,批量(bulk)传输大量数据
2) 单个TCP连接,client请求/server应答的交易(transaction)方式
3) 多个TCP连接,每个连接中一对请求/应答的交易方式

2 Netperf可以模拟两种UDP的流量模式:

1) 从client到server的单向批量传输
2)请求/应答的交易方式由于UDP传输的不可靠性,在使用netperf时要确保发送的缓冲区大小不大于接收缓冲区大小,否则数据会丢失,netperf将给出错误的结果。因此,对于接收到分组的统计不一定准确,需要结合发送分组的统计综合得出结论。

5 Netperf语法格式

Netperf [global options] –-[test-specific options]

[global options] 可选参数,具体如下介绍:

参数

说明

-H host

指定远端运行netserver的server IP地址

-l testlen

指定测试的时间长度(秒)

-t testname

指定进行的测试类型(TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR)

[test-specific options]可选参数,具体如下介绍:

参数

说明

-s size

设置本地系统的socket发送与接收缓冲大小

-S size

设置远端系统的socket发送与接收缓冲大小

-m size

设置本地系统发送测试分组的大小

-M size

设置远端系统接收测试分组的大小

-D

对本地与远端系统的socket设置TCP_NODELAY选项

-r req,resp

设置request和reponse分组的大小

远程主机: NPtcp [options]

本地主机: NPtcp -h remote_host [options]

你可能感兴趣的:(嵌入式 netperf2交叉编译)