性能测试工具
怎样压测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