netperf介绍

netperf是一个基于client-server模式的网络测试工具,可以测量TCP和UDP传输的吞吐量、时延、CPU占用率等性能参数。

它可以测试以下几种模式的TCP核UDP网络性能:

TCP_STREAM:client端向server端发送批量TCP数据
UDP_STREAM:client端向server端发送批量UDP数据
TCP_RR和TCP_CRR:前者是在同一个连接中进行多次request和response请求(并发),后者(新建)是每次请求新建一个连接(HTTP)
UDP_RR:使用UDP进行request和response请求

安装

	1、wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz
	2、tar zxvf netperf-2.5.0.tar.gz
	3、netperf-netperf-2.5.0 
	4、yum install gcc cc -y
	5、./configure
	6、make && make install
	7、检查是否安装成功(netperf -V)

使用方法

server端:

	netserver

client端:

	测试TCP_STREAM(TCP并发):
	netperf -t TCP_STREAM -H $netserver_ip -p $PORT -l $testtime -- -m $datagram_size
	测试TCP_RR(同一个IP并发):
	netperf -t TCP_RR -H $netserver_ip -l $testtime -p $PORT -- -r $req_size,$rsp_size
	测试UDP_STREAM:
	netperf -t UDP_STREAM -H $netserver_ip -l $testtime -- -m $datagram_size

常用参数

常用参数如下:

	  -t:设置netperf工作模式,包括TCP_STREAM、UDP_STREAM、TCP_CRR、TCP_RR、UDP_RR
	  -H:netserver的IP地址
	  -p:指定netserver的端口号
	  -l:设置测试时间
	  -m:批量传输时设置传输数据包大小
	  -r:请求应答模式测试时发送数据包大小和接收数据包大小
	  -O:自定义输出结果,可在其中添加时延、90值、99值、吞吐量、CPU使用率等信息

常见问题

netserver启动报错:

	如果netserver启动时端口被占用,则会报以下错误:
	Unable to start netserver with  'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC

解决方法:

	指定一个未使用的端口给netserver,如:
	netserver -p 49999

不同子网下的主机使用netperf时连接超时:

	netperf在设计时关闭了此功能,需要通过额外参数进行打开‘-R 1’,如:
	netperf -t TCP_STREAM -H $netserver_ip -P $PORT -l $testtime -- -R 1 -m $datagram_size

实例:

带宽测试:

	带宽测试:client向server发送32kb大包:
	netperf -t TCP_STREAM -H $server_ip_public -l $test_time -- -m 32k "MAX_LATENCY,MEAN_LATENCY,P90_LATENCY,P99_LATENCY,P999_LATENCY,P9999_LATENCY,STDDEV_LATENCY,THROUGHPUT,THROUGHPUT_UNITS"

延迟测试:

	长连接:
	netperf -t TCP_RR -H -H $server_ip_public -l $test_time -- -r $packet_size -O " MIN_LAETENCY, MAX_LATENCY, MEAN_LATENCY, P90_LATENCY, P99_LATENCY ,P999_LATENCY,P9999_LATENCY,STDDEV_LATENCY ,THROUGHPUT ,THROUGHPUT_UNITS "
	短连接:
	netperf -t TCP_CRR -H -H $server_ip_public -l $test_time -- -r $packet_size -O " MIN_LAETENCY, MAX_LATENCY, MEAN_LATENCY, P90_LATENCY, P99_LATENCY ,P999_LATENCY,P9999_LATENCY,STDDEV_LATENCY ,THROUGHPUT ,THROUGHPUT_UNITS"

PPS测试:

	client 端:
	netperf -H $server_ip_public -p $port -t UDP_STREAM -l 300 -- -m 1 -R 1
	server端:
	netserver -p $port
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐