有人能告诉我如何使用apache bench工具(ab)加载测试我的网站的过程吗?
我想了解以下几点:
网站每分钟能处理多少人?
请引导我通过我应该运行的命令来解决这个问题。
我尝试了每一个教程,它们都令人困惑。
有人能告诉我如何使用apache bench工具(ab)加载测试我的网站的过程吗?
我想了解以下几点:
网站每分钟能处理多少人?
请引导我通过我应该运行的命令来解决这个问题。
我尝试了每一个教程,它们都令人困惑。
当前回答
请引导我通过我应该运行的命令来解决这个问题。
您可以执行的最简单的测试是执行1000个请求,每次10个(这大致模拟了10个并发用户每个访问100个页面—在测试的长度中)。
ab -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/
-n 1000是发送请求的数量。
-c 10告诉AB一次执行10个请求,而不是一次执行1个请求,以更好地模拟并发访问者(而不是顺序访问者)。
-k发送KeepAlive报头,它要求web服务器在每个请求完成后不要关闭连接,而是继续重用它。
我还发送了额外的头部Accept-Encoding: gzip, deflate,因为mod_deflate几乎总是用于压缩文本/html输出25%-75% -其影响不应该被忽略,因为它对web服务器的整体性能的影响(即,可以在相同的时间内传输2倍的数据,等)。
结果:
Benchmarking www.example.com (be patient)
Completed 100 requests
...
Finished 1000 requests
Server Software: Apache/2.4.10
Server Hostname: www.example.com
Server Port: 80
Document Path: /
Document Length: 428 bytes
Concurrency Level: 10
Time taken for tests: 1.420 seconds
Complete requests: 1000
Failed requests: 0
Keep-Alive requests: 995
Total transferred: 723778 bytes
HTML transferred: 428000 bytes
Requests per second: 704.23 [#/sec] (mean)
Time per request: 14.200 [ms] (mean)
Time per request: 1.420 [ms] (mean, across all concurrent requests)
Transfer rate: 497.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 5 14 7.5 12 77
Waiting: 5 14 7.5 12 77
Total: 5 14 7.5 12 77
Percentage of the requests served within a certain time (ms)
50% 12
66% 14
75% 15
80% 16
90% 24
95% 29
98% 36
99% 41
100% 77 (longest request)
对于最简单的解释,忽略除了这一行以外的所有内容:
Requests per second: 704.23 [#/sec] (mean)
乘以60,就得到了每分钟的请求数。
为了得到真实世界的结果,你会想要测试Wordpress而不是一些静态HTML或index.php文件,因为你需要知道所有东西是如何一起执行的:包括复杂的PHP代码和多个MySQL查询……
例如,这里是在相同的系统和WAMP环境下测试新安装的Wordpress的结果(我使用的是WampDeveloper,但也有Xampp, WampServer和其他)…
Requests per second: 18.68 [#/sec] (mean)
现在已经慢了37倍!
在负载测试之后,你可以做一些事情来提高整体性能(每秒请求数),也可以让web服务器在更大的负载下更稳定(例如,增加-n和-c会导致Apache崩溃),你可以在这里读到:
负载测试Apache与AB (Apache Bench)
其他回答
在windows上设置Apache Bench(AB)的步骤(IMO -推荐)。 步骤1 -安装Xampp。 步骤2 -打开CMD。 步骤3 -从CMD进入apache bench目的地(cd C:\xampp\apache\bin) 步骤4 -粘贴命令(ab -n 100 -c 10 -k - h "Accept-Encoding: gzip, deflate" http://localhost:yourport/) 第五步——等待时机。你做的
请求后负载测试的最佳解决方案之一。点击这里
仅使用ab对API进行负载测试是不够的。然而,我认为它是一个很好的工具,可以让你对网站的性能有一个基本的了解。
如果你想使用ab命令在后台同时测试多个API端点,使用不同的数据,你需要使用“nohup”命令。即使关闭终端,它也会运行任何命令。
我写了一个简单的脚本,自动化整个过程,请随意使用:http://blog.ikvasnica.com/entry/load-test-multiple-api-endpoints-concurrently-use-this-simple-shell-script
执行步骤: 负载测试命令
步骤1 -安装Xampp。 步骤2 -打开CMD。 步骤3 -从CMD转到Apache工作台目的地(cd C:\xampp\ Apache \bin)。 步骤4—粘贴命令 ab -n 100 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://localhost:port/ 第五步——等待时机。你完成
只有主命令“Get”
ab -k -c 25 -n 2000 http://192.168.1.113:3001/api/v1/filters/3
请引导我通过我应该运行的命令来解决这个问题。
您可以执行的最简单的测试是执行1000个请求,每次10个(这大致模拟了10个并发用户每个访问100个页面—在测试的长度中)。
ab -n 1000 -c 10 -k -H "Accept-Encoding: gzip, deflate" http://www.example.com/
-n 1000是发送请求的数量。
-c 10告诉AB一次执行10个请求,而不是一次执行1个请求,以更好地模拟并发访问者(而不是顺序访问者)。
-k发送KeepAlive报头,它要求web服务器在每个请求完成后不要关闭连接,而是继续重用它。
我还发送了额外的头部Accept-Encoding: gzip, deflate,因为mod_deflate几乎总是用于压缩文本/html输出25%-75% -其影响不应该被忽略,因为它对web服务器的整体性能的影响(即,可以在相同的时间内传输2倍的数据,等)。
结果:
Benchmarking www.example.com (be patient)
Completed 100 requests
...
Finished 1000 requests
Server Software: Apache/2.4.10
Server Hostname: www.example.com
Server Port: 80
Document Path: /
Document Length: 428 bytes
Concurrency Level: 10
Time taken for tests: 1.420 seconds
Complete requests: 1000
Failed requests: 0
Keep-Alive requests: 995
Total transferred: 723778 bytes
HTML transferred: 428000 bytes
Requests per second: 704.23 [#/sec] (mean)
Time per request: 14.200 [ms] (mean)
Time per request: 1.420 [ms] (mean, across all concurrent requests)
Transfer rate: 497.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 5 14 7.5 12 77
Waiting: 5 14 7.5 12 77
Total: 5 14 7.5 12 77
Percentage of the requests served within a certain time (ms)
50% 12
66% 14
75% 15
80% 16
90% 24
95% 29
98% 36
99% 41
100% 77 (longest request)
对于最简单的解释,忽略除了这一行以外的所有内容:
Requests per second: 704.23 [#/sec] (mean)
乘以60,就得到了每分钟的请求数。
为了得到真实世界的结果,你会想要测试Wordpress而不是一些静态HTML或index.php文件,因为你需要知道所有东西是如何一起执行的:包括复杂的PHP代码和多个MySQL查询……
例如,这里是在相同的系统和WAMP环境下测试新安装的Wordpress的结果(我使用的是WampDeveloper,但也有Xampp, WampServer和其他)…
Requests per second: 18.68 [#/sec] (mean)
现在已经慢了37倍!
在负载测试之后,你可以做一些事情来提高整体性能(每秒请求数),也可以让web服务器在更大的负载下更稳定(例如,增加-n和-c会导致Apache崩溃),你可以在这里读到:
负载测试Apache与AB (Apache Bench)