分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

Apache 的ab 测试工具

发布时间:2023-09-06 01:42责任编辑:熊小新关键词:暂无标签
ab命令原理 


   Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。

   Apache附带的ab工具非常容易使用。ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载,因此是某些DDOS攻击之必备良药,老少皆宜。自己使用也须谨慎。否则一次上太多的负载,造成目标服务器直接因内存耗光死机,而不得不硬重启,得不偿失。

   在带宽不足的情况下,最好是本机进行测试,建议使用内网的另一台或者多台服务器通过内网进行测试,这样得出的数据,准确度会高很多。远程对web服务器进行压力测试,往往效果不理想(因为网络延时过大或带宽不足)


安装工具


yum install httpd-tools


用法


显示用法信息,其实就是ab -help。


-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可以配置的参数选项比较多,但是,一般情况下我们只需要使用形如ab -n 数字 -c 数字 url路径的命令即可。譬如,我们对http://192.168.0.10/进行压力测试。测试总次数为1000,并发数为100(相当于100个用户同时访问,他们总共访问1000次)。我们输入命令:


ab -n 1000 -c 100 http://192.168.0.10/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 192.168.0.10 (be patient)Completed 100 requestsCompleted 200 requestsCompleted 300 requestsCompleted 400 requestsCompleted 500 requestsCompleted 600 requestsCompleted 700 requestsCompleted 800 requestsCompleted 900 requestsCompleted 1000 requestsFinished 1000 requestsServer Software:        nginx/1.12.2     (服务器软件名称及版本信息)Server Hostname:        192.168.0.10     (服务器主机名)Server Port:            80     (服务器端口)Document Path:          /     (供测试的URL路径)Document Length:        612 bytes     (供测试的URL返回的文档大小)Concurrency Level:      100     (并发数)Time taken for tests:   0.528 seconds     (压力测试消耗的总时间)Complete requests:      1000     (压力测试的总次数)Failed requests:        0     (失败的请求数)Write errors:           0     (网络连接写入错误数)Total transferred:      845000 bytes     (传输的总数据量)HTML transferred:       612000 bytes     (HTML文档的总数据量)Requests per second:    1894.30 [#/sec] (mean)     (平均每秒的请求数)Time per request:       52.790 [ms] (mean)     (所有并发用户(这里是100)都请求一次的平均时间)Time per request:       0.528 [ms] (mean, across all concurrent requests)     (单个用户请求一次的平均时间)Transfer rate:          1563.17 [Kbytes/sec] received     (传输速率,单位:KB/s)Connection Times (ms)    (网络上消耗的时间的分解)min  mean[+/-sd] median   maxConnect:        7   21   9.7     20      53Processing:     7   23   9.2     22      65Waiting:        7   22   8.8     21      63Total:         16   45  11.6     42      75Percentage of the requests served within a certain time (ms)50%     4266%     4775%     5080%     5490%     6495%     6898%     7099%     73           100%     75 (longest request)




Apache 的ab 测试工具

原文地址:http://blog.51cto.com/chaichuan/2071024

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved