ab是Apache自帶的壓力測(cè)試工具。ab非常實(shí)用,它不僅可以對(duì)Apache服務(wù)器進(jìn)行網(wǎng)站訪問(wèn)壓力測(cè)試,也可以對(duì)其它類型的服務(wù)器進(jìn)行壓力測(cè)試。比如Nginx、Tomcat、IIS等。
下面我們開(kāi)始介紹有關(guān)ab命令的使用:
1、ab的原理
2、ab的安裝
3、ab參數(shù)說(shuō)明
4、ab性能指標(biāo)
5、ab實(shí)際使用
一、ab的原理
ab是apachebench命令的縮寫。
ab的原理:ab命令會(huì)創(chuàng)建多個(gè)并發(fā)訪問(wèn)線程,模擬多個(gè)訪問(wèn)者同時(shí)對(duì)某一URL地址進(jìn)行訪問(wèn)。它的測(cè)試目標(biāo)是基于URL的,因此,它既可以用來(lái)測(cè)試apache的負(fù)載壓力,也可以測(cè)試nginx、lighthttp、tomcat、IIS等其它Web服務(wù)器的壓力。
ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,它既不會(huì)占用很高CPU,也不會(huì)占用很多內(nèi)存。但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載,其原理類似CC攻擊。自己測(cè)試使用也需要注意,否則一次上太多的負(fù)載??赡茉斐赡繕?biāo)服務(wù)器資源耗完,嚴(yán)重時(shí)甚至導(dǎo)致死機(jī)。
二、ab的安裝
$ yum install httpd-tools
命令執(zhí)行完成后,就可以直接運(yùn)行ab。
三、ab參數(shù)說(shuō)明
下面我們對(duì)這些參數(shù)進(jìn)行相關(guān)說(shuō)明。如下:
-n:在測(cè)試會(huì)話中所執(zhí)行的請(qǐng)求個(gè)數(shù)。默認(rèn)時(shí),僅執(zhí)行一個(gè)請(qǐng)求。
-c:一次產(chǎn)生的請(qǐng)求個(gè)數(shù)。默認(rèn)是一次一個(gè)。
-t:測(cè)試所進(jìn)行的最大秒數(shù)。其內(nèi)部隱含值是-n 50000,它可以使對(duì)服務(wù)器的測(cè)試限制在一個(gè)固定的總時(shí)間以內(nèi)。默認(rèn)時(shí),沒(méi)有時(shí)間限制。
-p:包含了需要POST的數(shù)據(jù)的文件。
-P:對(duì)一個(gè)中轉(zhuǎn)代理提供BASIC認(rèn)證信任。用戶名和密碼由一個(gè):隔開(kāi),并以base64編碼形式發(fā)送。無(wú)論服務(wù)器是否需要(即是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送。
-T:POST數(shù)據(jù)所使用的Content-type頭信息。
-v:設(shè)置顯示信息的詳細(xì)程度-4或更大值會(huì)顯示頭信息,3或更大值可以顯示響應(yīng)代碼(404,200等),2或更大值可以顯示警告和其他信息。
-V:顯示版本號(hào)并退出。
-w:以HTML表的格式輸出結(jié)果。默認(rèn)時(shí),它是白色背景的兩列寬度的一張表。
-i:執(zhí)行HEAD請(qǐng)求,而不是GET。
-x:設(shè)置<table>屬性的字符串。
-X:對(duì)請(qǐng)求使用代理服務(wù)器。
-y:設(shè)置<tr>屬性的字符串。
-z:設(shè)置<td>屬性的字符串。
-C:對(duì)請(qǐng)求附加一個(gè)Cookie:行。其典型形式是name=value的一個(gè)參數(shù)對(duì),此參數(shù)可以重復(fù)。
-H:對(duì)請(qǐng)求附加額外的頭信息。此參數(shù)的典型形式是一個(gè)有效的頭信息行,其中包含了以冒號(hào)分隔的字段和值的對(duì)(如,”Accept-Encoding:zip/zop;8bit”)。
-A:對(duì)服務(wù)器提供BASIC認(rèn)證信任。用戶名和密碼由一個(gè):隔開(kāi),并以base64編碼形式發(fā)送。無(wú)論服務(wù)器是否需要(即,是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送。
-h:顯示使用方法。
-d:不顯示”percentage served within XX [ms] table”的消息(為以前的版本提供支持)。
-e:產(chǎn)生一個(gè)以逗號(hào)分隔的(CSV)文件,其中包含了處理每個(gè)相應(yīng)百分比的請(qǐng)求所需要(從1%到100%)的相應(yīng)百分比的(以微妙為單位)時(shí)間。由于這種格式已經(jīng)“二進(jìn)制化”,所以比’gnuplot’格式更有用。
-g:把所有測(cè)試結(jié)果寫入一個(gè)’gnuplot’或者TSV(以Tab分隔的)文件。此文件可以方便地導(dǎo)入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行為標(biāo)題。
-i:執(zhí)行HEAD請(qǐng)求,而不是GET。
-k:?jiǎn)⒂肏TTP KeepAlive功能,即在一個(gè)HTTP會(huì)話中執(zhí)行多個(gè)請(qǐng)求。默認(rèn)時(shí),不啟用KeepAlive功能。
-q:如果處理的請(qǐng)求數(shù)大于150,ab每處理大約10%或者100個(gè)請(qǐng)求時(shí),會(huì)在stderr輸出一個(gè)進(jìn)度計(jì)數(shù)。此-q標(biāo)記可以抑制這些信息。
四、ab性能指標(biāo)
在進(jìn)行性能測(cè)試過(guò)程中有幾個(gè)指標(biāo)比較重要: