美文网首页云计算
HTTP性能压测工具

HTTP性能压测工具

作者: testerzhang | 来源:发表于2018-06-05 17:10 被阅读204次

性能说明

  • 测试机与被测试机要分开
  • 不要对线上的服务器做压力测试

ab工具

ab安装说明

# yum -y install httpd-tools

安装后命令所在的目录

# which ab
/usr/bin/ab

ab参数说明

$ ab [可选的参数选项] 需要进行压力测试的url
  • 参数说明:

    -n  即requests,用于指定压力测试总共的执行次数。
    -c  即concurrency,用于指定的并发数。
    -t  即timelimit,等待响应的最大时间(单位:秒)。
    -b  即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
    -p  即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
    -u  即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
    -T  即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
    -v  即verbosity,指定打印帮助信息的冗余级别。
    -w  以HTML表格形式打印结果。
    -i  使用HEAD请求代替GET请求。
    -x  插入字符串作为table标签的属性。
    -y  插入字符串作为tr标签的属性。
    -z  插入字符串作为td标签的属性。
    -C  添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
    -H  添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
    -A  添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
    -P  添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
    -X  指定使用的和端口号,例如:"126.10.10.3:88"。
    -V  打印版本号并退出。
    -k  使用HTTP的KeepAlive特性。
    -d  不显示百分比。
    -S  不显示预估和警告信息。
    -g  输出结果信息到gnuplot格式的文件中。
    -e  输出结果信息到CSV格式的文件中。
    -r  指定接收到错误信息时不退出程序。
    -h  显示用法信息,其实就是ab -help。
    
  • 长链接参数:

    $ ab -k -c 100 -t 10 http://domain/path
    

    其中,参数「c」表示的是并发,参数「t」表示的是整个测试持续的时间。
    一个很容易被忽视的参数是「k」,它会增加请求头 Connection:Keep-Alive,相当于开启了HTTP长连接,这样做一方面可以降低测试服务器动态端口被耗尽的风险,另一方面也有助于给目标服务器更大的压力,测试出更接近极限的结果。

ab-FAQ

  • 报错apr_socket_recv: Connection reset by peer (104)

    查看应用服务器和数据库均未报错,连接被重置,bingyi了以下,apr_socket_recv这个是操作系统内核的一个参数,在高并发的情况下,内核会认为系统受到了SYN flood攻击,会发送cookies(possible SYN flooding on port 80. Sending cookies),这样会减慢影响请求的速度,所以在应用服务器上设置下这个参数为0禁用系统保护就可以进行大并发测试.然后就可以超过1000个并发测试了。

    # vim /etc/sysctl.conf 
    net.ipv4.tcp_syncookies = 0
    # sysctl -p
    

wrk工具

wrk安装说明

# git clone https://github.com/wg/wrk.git
# cd wrk
# make
# cp wrk /usr/sbin

wrk参数说明

  • Basic Usage

    wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html
    

    This runs a benchmark for 30 seconds, using 12 threads, and keeping 400 HTTP connections open.

    Output:
    
    Running 30s test @ http://127.0.0.1:8080/index.html
      12 threads and 400 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   635.91us    0.89ms  12.92ms   93.69%
        Req/Sec    56.20k     8.07k   62.00k    86.54%
      22464657 requests in 30.00s, 17.76GB read
    Requests/sec: 748868.53
    Transfer/sec:    606.33MB
    
  • Command Line Options

    -c, --connections: total number of HTTP connections to keep open with
                       each thread handling N = connections/threads
    
    -d, --duration:    duration of the test, e.g. 2s, 2m, 2h
    
    -t, --threads:     total number of threads to use
    
    -s, --script:      LuaJIT script, see SCRIPTING
    
    -H, --header:      HTTP header to add to request, e.g. "User-Agent: wrk"
    
        --latency:     print detailed latency statistics
    
        --timeout:     record a timeout if a response is not received within
                       this amount of time.
    

wrk-post方式

  • 编写post.lua脚本

    # cat post.lua 
    wrk.method = "POST" 
    
  • wrk调用post.lua脚本

    # /usr/local/bin/wrk -t12 -c400 -d30s --script=post.lua http://127.0.0.1:2050/
    

相关文章

  • HTTP性能压测工具

    性能说明 测试机与被测试机要分开 不要对线上的服务器做压力测试 ab工具 ab安装说明 安装后命令所在的目录 ab...

  • 性能压测工具说明(Jmeter)

    性能压测工具说明(Jmeter) Jmeter工具准备 获取路径:http://jmeter.apache.org...

  • 提升cpu使用率

    如何优化压测工具发压能力 -- 提升cpu使用率 压测工具工作流程 压测工具一般在性能压测过程中用于对被压的系统产...

  • 业务系统 Over 阿里云性能压测的最佳实践

    业务系统性能压测的最佳实践 压测工具的选择 目前主流的压测工具有 ab Jmeter 阿里云PTS 如何来选择呢,...

  • 业务系统 Over 阿里云性能压测的最佳实践

    业务系统性能压测的最佳实践 压测工具的选择 目前主流的压测工具有 ab Jmeter 阿里云PTS 如何来选择呢,...

  • 服务流量限制

    性能测试 写个简单的web服务,再用工具进行压测。 使用wrk 工具进行压测: 常见限流手段 流量限制的手段有很多...

  • ab压力测试

    压测工具:压力工具选择使用ApacheBench; 下载:http://www.apachelounge.com/...

  • JMeter压测环境准备

    JMeter是Java编写的多线程压测工具,测试HTTP请求时是“同步”机制,单台JMeter打压性能较一般。所以...

  • 性能压测工具wrk

    安装命令 帮助 wrk wrk -c1000 -t10 -d10 --latency "http://10.100...

  • 性能压测工具wrk

    mac安装 使用方法 命令示例 模拟4个线程,2000个连接,在60s内,间隔5s 执行 test.lua 的请求

网友评论

    本文标题:HTTP性能压测工具

    本文链接:https://www.haomeiwen.com/subject/eblmsftx.html