性能测试工具
怎样压测Web应用的性能?压测工具与测量、分析方法 中的部分工具没有转移到这里。
iperf 测试网络传输性能
iperf 是一个简单常用的网络传输性能测试工具,分为服务端和客户端,iperf-doc。
安装:
# for CentOS
yum install -y epel-release
yum install -y iperf
启动 Server 端:
$ iperf -p 5001 -s
# -s: server模式
# -p: 监听端口,默认5001
服务端可以用容器启动:
$ docker run -p 5001:5001 lijiaocn/iperf-server:1.0
启动 Client 端:
$ iperf -p 5001 -c 192.168.10.2 -l 1M -t 120
#-p: server 端口,默认 5001
#-c: server 地址
#-l: 每次发送的数据的长度,默认 tcp 是 128K,UDP 是 8K
#-t: 持续的时间
netperf 更精细的网络传输测试
NetPerf 能够测试更多场景,一个很强大的网络性能测试工具,netperf doc 中有介绍。
下载源代码,编译安装:
$ yum install -y gcc make git texinfo
$ git clone https://github.com/HewlettPackard/netperf.git
$ cd netperf
$ ./autogen.sh
$ ./configure --prefix=/usr/local/
$ sudo make install
启动服务端:
$ netserver -4 -p 7777
启动客户端,客户端指定测试类型:
$ netperf -4 -H 127.0.0.1 -p 7777 -t TCP_RR
netperf 的 -t 参数支持很多场景,netperf/cases 中整理了一部分。
wrk 测试 http 服务性能
[wrk] 是一个特别高效的 http 测试工具,推荐使用。怎样压测 Web 应用的性能?压测工具与测量、分析方法 中有更多工具 。
$ git clone https://github.com/wg/wrk.git
$ cd wrk
$ make
使用方法:
$ ./wrk
Usage: wrk <options> <url>
Options:
-c, --connections <N> Connections to keep open
-d, --duration <T> Duration of test
-t, --threads <N> Number of threads to use
-s, --script <S> Load Lua script file
-H, --header <H> Add header to request
--latency Print latency statistics
--timeout <T> Socket/request timeout
-v, --version Print version details
Numeric arguments may include a SI unit (1k, 1M, 1G)
Time arguments may include a time unit (2s, 2m, 2h)
测试用例:
$ ./wrk -t 32 -c 64 -d 60s -H "Host: webshell.com" http://172.16.129.4/ping