(9) ab测试工具安装与使用
一 安裝?
在任意目錄下執(zhí)行該命令:yum -y install httpd-tools
測試一下ab是否安裝成功:ab -V
二 使用
使用ab對網(wǎng)站進(jìn)行測試
ab -n 10000 -c 100 http://www.somedomain.com/a.html
-n 請求的次數(shù)
-c 并發(fā)數(shù)
三?ab參數(shù)說明
有關(guān)ab命令的使用,我們可以通過幫助命令進(jìn)行查看。如下:
ab --help
下面我們對這些參數(shù),進(jìn)行相關(guān)說明。如下:
-n在測試會(huì)話中所執(zhí)行的請求個(gè)數(shù)。默認(rèn)時(shí),僅執(zhí)行一個(gè)請求。
-c一次產(chǎn)生的請求個(gè)數(shù)。默認(rèn)是一次一個(gè)。
-t測試所進(jìn)行的最大秒數(shù)。其內(nèi)部隱含值是-n 50000,它可以使對服務(wù)器的測試限制在一個(gè)固定的總時(shí)間以內(nèi)。默認(rèn)時(shí),沒有時(shí)間限制。
-p包含了需要POST的數(shù)據(jù)的文件。
-P對一個(gè)中轉(zhuǎn)代理提供BASIC認(rèn)證信任。用戶名和密碼由一個(gè):隔開,并以base64編碼形式發(fā)送。無論服務(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顯示版本號并退出。
-w以HTML表的格式輸出結(jié)果。默認(rèn)時(shí),它是白色背景的兩列寬度的一張表。
-i執(zhí)行HEAD請求,而不是GET。
-x設(shè)置<table>屬性的字符串。
-X對請求使用代理服務(wù)器。
-y設(shè)置<tr>屬性的字符串。
-z設(shè)置<td>屬性的字符串。
-C對請求附加一個(gè)Cookie:行。其典型形式是name=value的一個(gè)參數(shù)對,此參數(shù)可以重復(fù)。
-H對請求附加額外的頭信息。此參數(shù)的典型形式是一個(gè)有效的頭信息行,其中包含了以冒號分隔的字段和值的對(如,"Accept-Encoding:zip/zop;8bit")。
-A對服務(wù)器提供BASIC認(rèn)證信任。用戶名和密碼由一個(gè):隔開,并以base64編碼形式發(fā)送。無論服務(wù)器是否需要(即,是否發(fā)送了401認(rèn)證需求代碼),此字符串都會(huì)被發(fā)送。
-h顯示使用方法。
-d不顯示"percentage served within XX [ms] table"的消息(為以前的版本提供支持)。
-e產(chǎn)生一個(gè)以逗號分隔的(CSV)文件,其中包含了處理每個(gè)相應(yīng)百分比的請求所需要(從1%到100%)的相應(yīng)百分比的(以微妙為單位)時(shí)間。由于這種格式已經(jīng)“二進(jìn)制化”,所以比'gnuplot'格式更有用。
-g把所有測試結(jié)果寫入一個(gè)'gnuplot'或者TSV(以Tab分隔的)文件。此文件可以方便地導(dǎo)入到Gnuplot,IDL,Mathematica,Igor甚至Excel中。其中的第一行為標(biāo)題。
-i執(zhí)行HEAD請求,而不是GET。
-k啟用HTTP KeepAlive功能,即在一個(gè)HTTP會(huì)話中執(zhí)行多個(gè)請求。默認(rèn)時(shí),不啟用KeepAlive功能。
-q如果處理的請求數(shù)大于150,ab每處理大約10%或者100個(gè)請求時(shí),會(huì)在stderr輸出一個(gè)進(jìn)度計(jì)數(shù)。此-q標(biāo)記可以抑制這些信息。
四、ab性能指標(biāo)
在進(jìn)行性能測試過程中有幾個(gè)指標(biāo)比較重要:
1、吞吐率(Requests per second)
服務(wù)器并發(fā)處理能力的量化描述,單位是reqs/s,指的是在某個(gè)并發(fā)用戶數(shù)下單位時(shí)間內(nèi)處理的請求數(shù)。某個(gè)并發(fā)用戶數(shù)下單位時(shí)間內(nèi)能處理的最大請求數(shù),稱之為最大吞吐率。
記住:吞吐率是基于并發(fā)用戶數(shù)的。這句話代表了兩個(gè)含義:
a、吞吐率和并發(fā)用戶數(shù)相關(guān)
b、不同的并發(fā)用戶數(shù)下,吞吐率一般是不同的
計(jì)算公式:總請求數(shù)/處理完成這些請求數(shù)所花費(fèi)的時(shí)間,即
Request per second=Complete requests/Time taken for tests
必須要說明的是,這個(gè)數(shù)值表示當(dāng)前機(jī)器的整體性能,值越大越好。
2、并發(fā)連接數(shù)(The number of concurrent connections)
并發(fā)連接數(shù)指的是某個(gè)時(shí)刻服務(wù)器所接受的請求數(shù)目,簡單的講,就是一個(gè)會(huì)話。
3、并發(fā)用戶數(shù)(Concurrency Level)
要注意區(qū)分這個(gè)概念和并發(fā)連接數(shù)之間的區(qū)別,一個(gè)用戶可能同時(shí)會(huì)產(chǎn)生多個(gè)會(huì)話,也即連接數(shù)。在HTTP/1.1下,IE7支持兩個(gè)并發(fā)連接,IE8支持6個(gè)并發(fā)連接,FireFox3支持4個(gè)并發(fā)連接,所以相應(yīng)的,我們的并發(fā)用戶數(shù)就得除以這個(gè)基數(shù)。
4、用戶平均請求等待時(shí)間(Time per request)
計(jì)算公式:處理完成所有請求數(shù)所花費(fèi)的時(shí)間/(總請求數(shù)/并發(fā)用戶數(shù)),即:
Time per request=Time taken for tests/(Complete requests/Concurrency Level)
5、服務(wù)器平均請求等待時(shí)間(Time per request:across all concurrent requests)
計(jì)算公式:處理完成所有請求數(shù)所花費(fèi)的時(shí)間/總請求數(shù),即:
Time taken for/testsComplete requests
可以看到,它是吞吐率的倒數(shù)。
同時(shí),它也等于用戶平均請求等待時(shí)間/并發(fā)用戶數(shù),即
Time per request/Concurrency Level
總結(jié)
以上是生活随笔為你收集整理的(9) ab测试工具安装与使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (8)nginx:反向代理和负载均衡
- 下一篇: 缓存工具类MyCacheUtil