使用Ab命令对Apache服务器进行负载压力测试
使用Ab命令對(duì)Apache服務(wù)器進(jìn)行負(fù)載壓力測(cè)試
本站原創(chuàng) [基于 署名-非商業(yè)使用-相同方式分享 2.5 協(xié)議,轉(zhuǎn)載須注明鏈接]
本文所述Ab命令已由管理員在Debian、Centos兩個(gè)系統(tǒng)中實(shí)際操作成功
壓力測(cè)試是性能調(diào)優(yōu)過程中必不可少的一環(huán)。只有讓服務(wù)器處在高壓情況下才能真正體現(xiàn)出各種設(shè)置所暴露的問題。Apache中有個(gè)自帶的,名為ab的程序,可以對(duì)Apache或其它類型的服務(wù)器進(jìn)行網(wǎng)站訪問壓力測(cè)試。
ab命令原理
ab命令會(huì)創(chuàng)建很多的并發(fā)訪問線程,模擬多個(gè)訪問者同時(shí)對(duì)某一URL進(jìn)行訪問。它的測(cè)試目標(biāo)是基于URL的,因此,既可以用來測(cè)試Apache的負(fù)載壓力,也可以測(cè)試nginx、lighthttp、IIS等其它Web服務(wù)器的壓力
ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,既不會(huì)占用很多CPU,也不會(huì)占用太多的內(nèi)存,但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載,因此是某些DDOS攻擊之必備良藥,老少皆宜。自己使用也須謹(jǐn)慎。否則一次上太多的負(fù)載,造成目標(biāo)服務(wù)器直接因內(nèi)存耗光死機(jī),而不得不硬重啟,得不償失。
ab實(shí)戰(zhàn)
在Windows系統(tǒng)下,打開cmd命令行窗口,定位到apache安裝目錄的bin目錄下;
對(duì)于Linux系統(tǒng),一般安裝好Apache后可以直接執(zhí)行;
| 1 | ab -n 10000 -c 100 http://www.xxx.com/ |
-n后面的1000代表總共發(fā)出10000個(gè)請(qǐng)求;-c后面的100表示采用100個(gè)并發(fā)(模擬100個(gè)人同時(shí)訪問),后面的網(wǎng)址表示測(cè)試的目標(biāo)URL。
稍等片刻,會(huì)得到類似如下回顯:
| 01 | This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 |
| 02 | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ |
| 03 | Copyright 1997-2005 The Apache Software Foundation, http://www.apache.org/ |
| 04 | ? |
| 05 | Benchmarking localhost (be patient) |
| 06 | Completed 100 requests |
| 07 | Completed 200 requests |
| 08 | Completed 300 requests |
| 09 | Completed 400 requests |
| 10 | Completed 500 requests |
| 11 | Completed 600 requests |
| 12 | Completed 700 requests |
| 13 | Completed 800 requests |
| 14 | Completed 900 requests |
| 15 | Finished 1000 requests |
| 16 | Server Software: Apache/2.0.52 |
| 17 | Server Hostname: localhost |
| 18 | Server Port: 80 |
| 19 | ? |
| 20 | Document Path: / |
| 21 | Document Length: 1494 bytes |
| 22 | ? |
| 23 | Concurrency Level: 100 |
| 24 | /*整個(gè)測(cè)試持續(xù)的時(shí)間*/ |
| 25 | Time taken for tests: 3.296875 seconds |
| 26 | /*完成的請(qǐng)求數(shù)量*/ |
| 27 | Complete requests: 1000 |
| 28 | /*失敗的請(qǐng)求數(shù)量*/ |
| 29 | Failed requests: 0 |
| 30 | Write errors: 0 |
| 31 | /*保持聯(lián)機(jī)連接的請(qǐng)求數(shù)量。只有在命令行中使用-k,才能看到該屬性值。*/ |
| 32 | Keep-Alive requests: 1000 |
| 33 | /*整個(gè)場(chǎng)景中的網(wǎng)絡(luò)傳輸量*/ |
| 34 | Total transferred: 1987070 bytes |
| 35 | /*整個(gè)場(chǎng)景中的HTML內(nèi)容傳輸量*/ |
| 36 | HTML transferred: 1494000 bytes |
| 37 | /*每秒鐘平均處理的請(qǐng)求數(shù)*/ |
| 38 | Requests per second: 303.32 [#/sec] (mean) |
| 39 | /*每個(gè)線程下的一組請(qǐng)求平均消耗時(shí)間*/ |
| 40 | Time per request: 329.688 [ms] (mean) |
| 41 | /*并發(fā)的每個(gè)請(qǐng)求平均消耗時(shí)間*/ |
| 42 | Time per request: 3.297 [ms] (mean, across all concurrent requests) |
| 43 | /*平均每秒網(wǎng)絡(luò)上的流量,可以幫助排除是否存在網(wǎng)絡(luò)流量過大導(dǎo)致響應(yīng)時(shí)間延長(zhǎng)的問題*/ |
| 44 | Transfer rate: 588.44 [Kbytes/sec] received |
| 45 | ? |
| 46 | Connection Times (ms) |
| 47 | min mean[+/-sd] median max |
| 48 | Connect: 0 0 0.8 0 15 |
| 49 | Processing: 0 212 69.4 218 406 |
| 50 | Waiting: 0 211 69.5 218 406 |
| 51 | Total: 0 212 69.3 218 406 |
| 52 | /*下面的內(nèi)容為整個(gè)場(chǎng)景中所有請(qǐng)求的響應(yīng)情況。在場(chǎng)景中每個(gè)請(qǐng)求都有一個(gè)響應(yīng)時(shí)間,其中 50% 的用戶響應(yīng)時(shí)間小于 218 毫秒,66 % 的用戶響應(yīng)時(shí)間小于 234 毫秒,最大的響應(yīng)時(shí)間小于 406 毫秒*/ |
| 53 | ? |
| 54 | Percentage of the requests served within a certain time (ms) |
| 55 | 50% 218 |
| 56 | 66% 234 |
| 57 | 75% 250 |
| 58 | 80% 265 |
| 59 | 90% 296 |
| 60 | 95% 312 |
| 61 | 98% 343 |
| 62 | 99% 359 |
| 63 | 100% 406 (longest request) |
根據(jù)個(gè)人經(jīng)驗(yàn),真正在遠(yuǎn)程對(duì)Apache進(jìn)行壓力測(cè)試,往往效果會(huì)非常不明顯(因?yàn)榫W(wǎng)絡(luò)延時(shí)過大),因此在某些情況下,建議干脆在VPS上對(duì)localhost進(jìn)行測(cè)試(雖然理論上對(duì)真實(shí)結(jié)果有影響,但實(shí)際幾乎沒什么誤差)
總結(jié)
以上是生活随笔為你收集整理的使用Ab命令对Apache服务器进行负载压力测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 任正非:曾竭力反对华为做手机
- 下一篇: macbook m1 无法启动mysql