开源压力测试工具Apache benchmarking
Apache2自带了一个开源压力测试工具,叫做ab(Apache Benchmarking)。它的主要功能是,测试当前的Apache每秒钟能够处理的请求数量。
ab [选项] [http[s]://]hostname[:port]/path
详细选项:
ab [ -A auth-username:password ][ -c concurrency ][ -C cookie-name=value ][ -d ]
[ -e csv-file ][ -g gnuplot-file ][ -h ][ -H custom-header ][ -i ][ -k ][ -n requests ]
[ -p POST-file ][ -P proxy-auth-username:password ][ -q ][ -s ][ -S ][ -t timelimit ]
[ -T content-type ][ -v verbosity][ -V ][ -w ][ -x <table>-attributes ][ -X proxy[:port] ]
[ -y <tr>-attributes ][ -z <td>-attributes ][http[s]://]hostname[:port]/path
请注意最后面的 path ,这个是必须有的,如果只给出 http://hostname
则会出错,后面必须给出路径如: http://hostname/
。
-A auth-username:password
向服务器提供基本认证信息。用户名和密码之间由一个":"隔开,并将被以base64编码形式发送。
无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送。
-c concurrency
一次产生的请求个数。默认是一次一个。
-C cookie-name=value
对请求附加一个"Cookie:"头行。其典型形式是 name=value 的一个参数对。此参数可以重复。
-d
不显示"percentage served within XX [ms] table"消息(为以前的版本提供支持)。
-e csv-file
产生一个逗号分隔(CSV)文件,其中包含了处理每个相应百分比请求(从1%到100%)所需要的相应
百分比时间(以微秒为单位)。由于这种格式已经"二进制化",所以比"gnuplot"格式更有用。
-g gnuplot-file
把所有测试结果写入一个"gnuplot"或者TSV(以Tab分隔)文件。此文件可以方便地导入到
Gnuplot, IDL, Mathematica, Excel中。其中的第一行为标题。
-h
显示使用方法的帮助信息。
-H custom-header
对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以
冒号分隔的字段和值(如:"Accept-Encoding: zip/zop;8bit")。
-i
执行HEAD请求,而不是GET 。
-k
启用KeepAlive功能,即在一个HTTP会话中执行多个请求。默认不启用KeepAlive功能。
-n requests
在测试会话中所执行的请求个数。默认仅执行一个请求,此时其结果不具有意义。
-p POST-file
包含了POST数据的文件。
-P proxy-auth-username:password
对一个中转代理提供基本认证信息。用户名和密码由一个":"隔开,并将被以base64编码
形式发送。无论服务器是否需要(即是否发送了407代理认证需求代码),此字符串都会被发送。
-q
如果处理的请求数大于150,ab每处理大约10%或者100个请求时,会在stderr输出一个
进度计数。此 -q 标记可以屏蔽这些信息。
-s
用于编译中(ab -h 会告诉你)使用了SSL的受保护的https ,而不是http协议的时候。
此功能是实验性的,最好不要用。
-S
不显示中值和标准偏差值,而且在均值和中值为标准偏差值的1到2倍时,也不显示警告
或出错信息。默认时,会显示最小值/均值/最大值等数值。(为以前的版本提供支持)
-t timelimit
测试所进行的最大秒数。内部隐含值是"-n 50000"。它可以使对服务器的测试限制在
一个固定的总时间以内。默认时,没有时间限制。
-T content-type
POST数据时所使用的"Content-type"头信息。
-v verbosity
设置显示信息的详细程度,4或更大值会显示头信息,3或更大值可以显示响应代码
(404,200等),2或更大值可以显示警告和其他信息。
-V
显示版本号并退出。
-w
以HTML表格形式输出结果。默认时,它是白色背景的两列宽度的一张表。
-x <table>-attributes
设置<table>属性的字符串。此属性被填入<table 这里 > 。
-X proxy[:port]
对请求使用代理服务器。
-y <tr>-attributes
设置<tr>属性的字符串。
-z <td>-attributes
设置<td>属性的字符串。
1、当你安装好Apache2服务器后,向本机 http://localhost/
发出20000个请求,每次发出200个,亲自测试一下看看:
$ ab –n 20000 -c 200 http://localhost/
2、向 http://www.apache.org/
发出10个请求,每次发出10个:
$ ab –n 10 -c 10 http://www.apache.org/
n表示的是测试过程中请求的个数,c表示的是 一次请求的个数,即并发数。设定的时候要注意,n要大于c。
$ ab -n 10 -c 10 http://www.apache.org/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.apache.org (be patient)…..done
Server Software: Apache/2.2.12 //服务器软件
Server Hostname: www.apache.org //服务器主机名
Server Port: 80
Document Path: / <-- 测试文档路径
Document Length: 19973 bytes <-- 测试文档大小
Concurrency Level: 10 <-- 并发数,这个数即是参数c设定的值。
Time taken for tests: 12.328 seconds <-- 整个测试持续的时间
Complete requests: 10 <-- 完成的请求数
Failed requests: 0 <-- 失败的请求数
Write errors: 0
Total transferred: 203220 bytes <-- 整个测试中的网络传输量
HTML transferred: 199730 bytes <-- 整个测试中的HTML传输量
Requests per second: 0.81 [#/sec] (mean) <-- 每秒平均请求数。这个值比较重要。
Time per request: 12328.125 [ms] (mean) <-- 每个请求平均响应时间(毫秒)
Time per request: 1232.813 [ms] (mean, across all concurrent requests)
<-- 所有并发请求中,每个请求平均响应时间
Transfer rate: 16.10 [Kbytes/sec] received <-- 每秒传输数据量 即网速
Connection Times (ms)
min mean[+/-sd] median max
Connect: 594 808 132.0 875 984
Processing: 3016 4478 1566.5 4234 7375
Waiting: 594 3561 2454.8 3813 7375
Total: 3688 5286 1562.9 4828 8078
Percentage of the requests served within a certain time (ms)
50% 4828
66% 5672
75% 6484
80% 7375
90% 8078
95% 8078
98% 8078
99% 8078
100% 8078 (longest request)
<-- 整个测试中所有请求的响应情况。在测试中每个请求都有一个响应时间,
其中50%的用户响应时间小于4828 毫秒,60% 的用户响应时间小于5672 毫秒,
等等,以此类推,最大的响应时间小于8078 毫秒。
分享到:
相关推荐
开源项目-gilbertchen-benchmarking.zip,A performance comparison of Duplicacy, restic, Attic, and duplicity
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好,安装使用也特别方便。 1、适用系统:Linux 2、编译安装: tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make...
数据库基准和压力测试 2018版本 [Database Benchmarking and Stress Testing - 2018.pdf](https://itbooks.pipipan.com/fs/18113597-314044807) Database Benchmarking and Stress Testing pdf Provide evidence...
【用正确方法对度量学习算法进行基准测试】《Benchmarking Metric Learning Algorithms the Right Way》
一般用户压力测试用。参数如下 .\ab.exe --help Options are: -n requests Number of requests to perform -c concurrency Number of multiple requests to make at a time -t timelimit Seconds to max. to ...
rfc2544(Benchmarking Methodology for Network Interconnect Devices对以太网进行测试的方法论)
锤子Dhammer是DHCP服务器的压力测试仪。 它目前仅支持DHCPv4,但是创建它的初衷是在不久的将来将DHCPv6包括在内。 请阅读本文档底部的完整免责声明。 该工具用于测试您自己的网络和服务器。 我编写此文档的目的是...
This book presents dozens of case studies to help you understand complicated benchmarking topics. You will avoid common pitfalls, control the accuracy of your measurements, and improve performance of...
基于特定领域的生物医学自然语言处理任务基准测试_Benchmarking for Biomedical Natural Language Processing Tasks with a Domain Specific ALBERT.pdf
因此,该工具使用户有责任设计自己的基准测试程序,并根据测试数据和指标的组合来确定最适合其特定用例的引擎。 用法示例 返回与参考相比,假设笔录的单词插入,删除,替换和匹配的次数: benchmarkstt --...
Dhrystone Benchmarking for ARM Cortex Processors ARM处理器在Dhrystone软件下的基准测试, 测试其他嵌入式CPU可以按照该标准测试计算
Quantitative Models for Performance Evaluation and Benchmarking Data Envelopment Analysis with Spreadsheets 数据包络分析:绩效评估与标杆
KDiskMark:适用于Linux发行版的简单开源磁盘基准测试工具
用以企业随机前沿、投入产出效率分析的最新工具书,实践性强,理论与操作并重。
该项目旨在提供工具,用于在运行交互式应用程序(尤其是图形应用程序)时对各种Linux版本的性能进行基准测试。
C++ benchmarking framework
This thesis studies benchmarking of real-time operating systems which could be suitable for Radio Base Station support systems
利用nghttp2的测试工具h2load来进行测试
cpu benchmarking code in c