• ab工具进行压力测试


    简介与安装

    ab:Apache Benchmark,只要我们安装了Apache,就能够在Apache的安装目录中找到它.

    yum | apt 安装的Apache  ab的目录一般为/usr/bin 也可以通过 which ab 查看

    ab 不仅仅针对apache服务器的网站进行压力测试,nginx、tomcat、IIS等其他服务器也可以进行压力测试.

    不能或不想安装Apache,也可以使用ab,安装Apache的工具包httpd-tools即可:

    yum -y install httpd-tools    //安装
    ab -V                         //检测是否成功安装

    用法简单说明

    切换到 ab所在目录    ab -help 查看用法介绍

    可以看出:使用方式为 

    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 -c 100 -n 1000 http://dev2.lystrong.cn/ 

    Server Software: Apache/2.4.18                          (服务器软件名称及版本信息)
    Server Hostname: dev2.lystrong.cn                     (服务器主机名)
    Server Port: 80                                                      (服务器端口)

    Document Path: /                                                   (供测试的URL路径)
    Document Length: 0 bytes                                     (供测试的url返回的文档大小)

    Concurrency Level: 100                                         (并发数)
    Time taken for tests: 3.927 seconds                      (压力测试消耗的总时间)
    Complete requests: 1000                                       (压力测试的总次数)

    Failed requests: 0                                                   (失败的请求数)
    Total transferred: 225000 bytes                              (传输的总数据量)
    HTML transferred: 0 bytes                                      (HTML文档总数据量)
    Requests per second: 254.67 [#/sec] (mean)         (平均每秒的请求数)
    Time per request: 392.661 [ms] (mean)                  (所有并发用户请求一次的平均时间 此处为100)
    Time per request: 3.927 [ms] (mean, across all concurrent requests)          (单个用户请求一次的平均时间)
    Transfer rate: 55.96 [Kbytes/sec] received             (传输速率  单位 :KB/S)

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 3 17 108.7 5 1005
    Processing: 8 235 201.5 239 3409
    Waiting: 8 234 200.9 239 3409
    Total: 13 252 234.2 243 3413

    Percentage of the requests served within a certain time (ms)
    50% 243
    66% 314
    75% 326
    80% 332
    90% 345
    95% 507
    98% 966
    99% 1337
    100% 3413 (longest request)

    可以测试很高的总请求次数和高并发数,模拟高压力情况,Apache拒绝访问 或服务器打开文件太多

    出现 Too many open files (24)主要是因为文件打开数的限制,默认情况下是1024,可以使用ulimit -n查看,可以看出系统默认open files的1024不足以支撑测试,

    使用  

    ulimit -SHn 65536  //临时更改文件打开数

     

    出现:

    Benchmarking dev2.lystrong.cn (be patient)  
    Test aborted after 10 failures
    apr_socket_connect():

    Apache拒绝访问了

           

  • 相关阅读:
    337粘贴与选择性粘贴
    Excel VBA定制开发如何将数据重复指定次数听语音
    317、单元格的Offset
    Shape.Type属性名称及对应值列表
    Mysql解决The total number of locks exceeds the lock table size错误
    python QT5 tableview 用法1
    python qt5 菜单栏一级菜单响应单击事件
    自定义类加载器
    SpringCloudConfig与Nacos多个领域配置的不同
    多线程工具ForkJoinPool
  • 原文地址:https://www.cnblogs.com/yimingwang/p/9956937.html
Copyright © 2020-2023  润新知