[转帖]CentOS7 ab压力测试安装与解释

centos7,ab,压力,测试,安装,解释 · 浏览次数 : 0

小编点评

**背景:** Apache Benchmarks (ab) 是 Apache 安装包中自带的压力测试工具,用于测试服务器的性能。 **安装:** 使用 yum 命令安装: ```bash yum -y install httpd-tools ``` **使用说明:** 1. **指定压力测试的 URL:**使用 `-p` 参数指定要测试的 URL。例如:`ab -p 80/index1.html` 2. **指定并发数:**使用 `-c` 参数指定并发数。例如:`ab -c 100` 表示同时运行 100 个请求。 3. **指定时间限制:**使用 `-t` 参数指定响应的最大时间。例如:`ab -t 60` 表示等待 60 秒的响应。 4. **指定窗口大小:**使用 `-b` 参数指定 TCP 发送/接收窗口大小。例如:`ab -b 128` 表示开启 128 字节的窗口大小。 5. **设置请求头信息:**使用 `-H` 参数设置请求头信息。例如:`ab -H "Content-Type: application/json"` 设置请求头信息为 JSON。 6. **设置网络认证:**使用 `-A` 参数设置 HTTP 认证信息,用户名和密码之间用英文冒号隔开。 7. **模拟并发请求:**使用 `-k` 参数启用 HTTP Keep-Alive,保持连接打开并处理多个请求。 8. **执行压力测试:**运行 `ab` 命令。 9. **查看结果:**使用 `-v` 参数指定详细的结果输出,包括请求数、响应时间、错误数量等。 **示例:** ```bash # 测试页面:index1.html ab -c 100 -n 5000 http://192.168.1.106/index1.html # 测试并发数:100 ab -c 100 -n 50000 http://192.168.1.106/index1.html # 设置窗口大小:128 ab -b 128 -t 60 http://192.168.1.106/index1.html ``` **注意事项:** - 测试机与被测试机要分开,不要对线上的服务器做压力测试观察测试工具ab所在机器。 - 测试前应确保被测试前端机的 CPU、内存、网络等都不超过最高限度的 75%。

正文

#背景

  • Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用
  • 在此提供 ab 在 centOS7 下的安装和使用方法
  • 注:个人发现,之前安装的centos6.5 默认已安装了ab,具体原因不明

①.ab(apache benchmark)安装

命令:# yum -y install httpd-tools

    ②.ab测试的命令参数

    • 命令: abab -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的使用

      • 模拟并发请求100次,总共请求10000次
      • 命令模板:
        ab -c 100 -n 10000 待测试网站(建议完整路径)
      • 内容解释:
      Server Software:        nginx/1.10.2 (服务器软件名称及版本信息)
      Server Hostname:        192.168.1.106(服务器主机名)
      Server Port:            80 (服务器端口)
      Document Path:          /index1.html. (供测试的URL路径)
      Document Length:        3721 bytes (供测试的URL返回的文档大小)
      Concurrency Level:      1000 (并发数)
      Time taken for tests:   2.327 seconds (压力测试消耗的总时间)
      Complete requests:      5000 (的总次数)
      Failed requests:        688 (失败的请求数)
      Write errors:           0 (网络连接写入错误数)
      Total transferred:      17402975 bytes (传输的总数据量)
      HTML transferred:       16275725 bytes (HTML文档的总数据量)
      Requests per second:    2148.98 [#/sec] (mean) (平均每秒的请求数) 这个是非常重要的参数数值,服务器的吞吐量 
      Time per request:       465.338 [ms] (mean) (所有并发用户(这里是1000)都请求一次的平均时间)
      Time  request:       0.247 [ms] (mean, across all concurrent requests) (单个用户请求一次的平均时间)
      Transfer rate:          7304.41 [Kbytes/sec] received 每秒获取的数据长度 (传输速率,单位:KB/s)
      ...
      Percentage of the requests served within a certain time (ms)
        50%    347  ## 50%的请求在347ms内返回 
        66%    401  ## 60%的请求在401ms内返回 
        75%    431
        80%    516
        90%    600
        95%    846
        98%   1571
        99%   1593
       100%   1619 (longest request)
      

        ④.压力测试(示例)

        【测试一】:

        命令: #  ab -c 100 -n 5000 http://192.168.1.106/index1.html
        
        • 1

        【测试二】:

        命令:#  ab -c 10000 -n 50000 http://192.168.1.106/index1.html
        
        • 1

        • 简单解释:并发访问量过大 服务器拒绝访问,理论上通过系统配置,可以有更好的承受能力

        ⑤.注意事项

        • 测试机与被测试机要分开
        • 不要对线上的服务器做压力测试
        • 观察测试工具ab所在机器,以及被测试的前端机的CPU、内存、网络等都不超过最高限度的75%

        ⑥.文章推荐

        与[转帖]CentOS7 ab压力测试安装与解释相似的内容:

        [转帖]CentOS7 ab压力测试安装与解释

        #背景 Apache Benchmark(简称ab) 是Apache安装包中自带的压力测试工具 ,简单易用在此提供 ab 在 centOS7 下的安装和使用方法注:个人发现,之前安装的centos6.5 默认已安装了ab,具体原因不明 ①.ab(apache benchmark)安装 命令:# yu

        [转帖]centos7.6编写自己的启动服务,运行systemctl后卡住了的解决方案

        https://www.cnblogs.com/niway/p/15346572.html 问题:centos7.6编写自己的启动服务,运行systemctl后卡住了,表现为当我执行systemctl命令后shell阻塞在那里,没有像平时执行命令那样自动结束(只能自己按Ctrl+C强制结束),情况如

        [转帖]Centos7升级glibc导致系统异常(无法开机)解决方法

        https://www.jb51.net/article/230473.htm 目录 我使用的是centos7(理论上这个方法仅仅对centos7以及Redhat7都可以使用该方法解决问题) 注意:此方法仅针对Redhat7/Centos7以上。 出现问题原因: 在调优hbase的时候,查资料发现可

        [转帖]CentOS7搭建时间服务器-chrony

        操作系统:CentOS7防火墙: 关闭防火墙和selinux时间软件:chronyCentOS7我们一直用的ntp时间服务器,虽然到CentOS7上也可以装ntp。chrony与ntp都是时间同步软件,两个软件不能够同时开启,会出现时间冲突.但是由于各种问题,所以建议CentOS7使用chrony同

        [转帖]CentOS7/完美升级gcc版本方法

        https://zhuanlan.zhihu.com/p/535657060 在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc、不要去编译gcc、不要去编译gcc,我这里推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gc

        [转帖]CentOS7完美升级gcc版本方法

        https://blog.whsir.com/post-4975.html 在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc、不要去编译gcc、不要去编译gcc,我这里推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gcc

        [转帖]centos7 firewall-cmd主机之间端口转发

        目录 1. firewalld1.1 firewalld守护进程1.2 控制端口/服务1.3 伪装IP1.4 端口转发 2. 案例2.1 配置ServerA2.2 安装nginx测试 (可选)2.3 开启端口2.4 伪装IP2.5 端口转发2.6 配置ServerB2.7 修改nginx页面显示内容

        [转帖]Centos7 nginx访问日志文件割接

        一、yum安装nginx 二、各文件路径( /etc/nginx/nginx.conf) 1、访问日志路径:access_log /var/log/nginx/access.log main; 2、pid路径:pid /run/nginx.pid 三、脚本 1、创建脚本 [root@localhos

        [转帖]CentOS7上systemctl的使用

        https://www.cnblogs.com/yeyuzhuanjia/p/14676182.html CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。 1、原来的 service 命令

        [转帖]CentOS7安装笔记:minio分布式集群搭建

        文章目录 准备机器部署(所有机器均执行)创建挂载磁盘路径挂载磁盘路径到文件系统创建minio目录下载minio安装包创建启动脚本创建启动服务 启动测试(所有机器执行)重新加载服务的配置文件启动minio服务查看minio状态关闭minio服务访问地址创建测试bucket上传测试 准备机器 我本地使用