性能测试工具

怎样压测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

ghz 测试 grpc 服务性能

Grpc性能压测方法:用ghz进行压测

参考

  1. 李佶澳的博客
  2. iperf、netperf
  3. siege