Apache的ab压力测试工具与性能监控

【图书介绍】《软件性能测试、分析与调优实践之路(第2版)》_软件性能测试分析与调优实践之路-CSDN博客
《软件性能测试、分析与调优实践之路(第2版)》(张永清)【摘要 书评 试读】- 京东图书 (jd.com)

Apache的ab压力测试工具

Apache中自带了性能压测工具ab,一些比较简单的压力测试请求可以直接使用这个性能压测工具ab来完成。ab使用起来非常简单方便,直接可以通过命令行执行ab命令,或者在命令后面加上对应的参数即可开启性能压测。

ab支持的常用参数如下:

  1. -n requests:表示总计发送多少请求。
  2. -c concurrency:代表客户端请求的并发连接的数量。
  3. -k:开启Http KeepAlive。
  4. -s timeout:设置响应的超时时间,默认为30秒。
  5. -b windowsize:设置TCP请求发送和接收的缓冲区大小,单位为字节。
  6. -f protocol:指定SSL/TLS协议(支持SSL3、TLS1、TLS1.1、TLS1.2或者all)。
  7. -g filename:输出收集到的压测数据到gnuplot 格式的文件中,gnuplot是一个命令行的交互式绘图工具。
  8. -e filename:输出收集到的压测数据到csv 格式的文件中。
  9. -r:表示在socket接收到错误时,ab压测不退出。
  10. -X proxy:port:设置压测请求地址的代理服务器地址。

示例:ab -n 10000 -c 60 -k http://127.0.0.1:80/ 表示总共发送10 000次压测请求,并发连接数为60,并且在压测时客户端开启KeepAlive。

[root@localhost conf]# ab -n 10000 -c 60 -k  http://127.0.0.1:80/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests


Server Software:        Apache/2.4.6
Server Hostname:        127.0.0.1
Server Port:            80

Document Path:          /
Document Length:        4897 bytes

Concurrency Level:      60
Time taken for tests:   4.014 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Non-2xx responses:      10000
Keep-Alive requests:    9916
Total transferred:      52046232 bytes
HTML transferred:       48970000 bytes
Requests per second:    2491.21 [#/sec] (mean)
Time per request:       24.085 [ms] (mean)
Time per request:       0.401 [ms] (mean, across all concurrent requests)
Transfer rate:          12661.90 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.5      0       8
Processing:     0   11  65.9      8    2474
Waiting:        0   11  65.9      7    2474
Total:          0   11  66.0      8    2474

Percentage of the requests served within a certain time (ms)
  50%      8
  66%      8
  75%      8
  80%      9
  90%     11
  95%     12
  98%     15
  99%     34
 100%   2474 (longest request)

Apache的性能监控

Apache自身自带了状态监控页面,但是默认是关闭的,可以通过在httpd.conf中增加如下配置来打开监控页面。

<location /server-status>

    SetHandler server-status

    Order Deny,Allow

    Allow from all

</location>

增加上述配置后,然后就可以通过访问http://ip:port/server‐status来查看监控页面了,如图3-2-6和图3-2-7所示。

图3-2-6

图3-2-7

从上图中可以看到如下数据:

(1)Total accesses:对Apache的访问量。

(2)Total Traffic:Apache的访问流量,单位为KB。

(3)CPU Usage:CPU的使用情况。

(4)每秒收到的请求的统计信息:0.0513 requests/sec - 105 B/second - 2048 B/request,表示平均每秒收到0.0513个请求,平均每秒收到的请求流量为105字节,每个请求的平均大小为2048字节。

(5)请求的处理情况:1 requests currently being processed, 8 idle workers,表示目前1个请求正在被处理(状态为w,表示处理发送回复状态),目前有8个线程处于空闲状态。

(6)目前运行的Apache进程的资源使用情况以及客户端的连接情况,如图3-2-8所示。

图3-2-8

从图中可以看到,当前有4个进程正在工作中,并且PID为1925的进程当前正在处理一个HTTP的GET请求。

相关推荐
Hello.Reader43 分钟前
深入解析 Apache APISIX
java·apache
美团测试工程师3 小时前
Postman接口测试工具使用详解
测试工具·postman
测试杂货铺6 小时前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
一二小选手6 小时前
Postman接口测试工具
java·测试工具·postman
hwscom8 小时前
如何永久解决Apache Struts文件上传漏洞
java·服务器·struts·web安全·apache
白开水2338 小时前
Apache RocketMQ 5.1.3安装部署文档
apache·rocketmq
测试老哥10 小时前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
爱学测试的李木子11 小时前
从0到1搭建 Android 自动化 python+appium 环境
android·软件测试·python·测试工具·自动化
霍格沃兹测试开发学社测试人社区13 小时前
软件测试丨性能测试工具-JMeter
软件测试·测试开发·测试工具·jmeter·性能测试
小张认为的测试14 小时前
Linux性能监控命令_nmon 安装与使用以及生成分析Excel图表
linux·服务器·测试工具·自动化·php·excel·压力测试