一、目的利用autobench工具結(jié)合httperf命令對(duì)web服務(wù)器進(jìn)行測(cè)試,,得出該服務(wù)器可以承載的最大并發(fā)連接數(shù)與最佳并發(fā)數(shù),。 二、測(cè)試工具工具介紹1,、Httperfhttperf 是一款高性能的HTTP測(cè)試工具,,使用它我們可以準(zhǔn)確定位服務(wù)器的并發(fā)連接能力,。下面介紹一下它的主要特征 (1) 可以觀察測(cè)試客戶端(并非被測(cè)服務(wù)器)在發(fā)起壓力測(cè)試時(shí)的負(fù)載情況。這樣在測(cè)試高并發(fā)的情況下可以準(zhǔn)確的分析問(wèn)題,。(被測(cè)服務(wù)器無(wú)法承載高并發(fā)還是測(cè)試客戶端無(wú)法發(fā)起過(guò)多請(qǐng)求) 下載:http://code.google.com/p/httperf/downloads/list 安裝: 更多的使用方法參見man page,。 2、autobenchautobench 是一款基于httperf的Perl腳本,。它會(huì)在一次測(cè)試中調(diào)用多次httperf來(lái)對(duì)web服務(wù)器進(jìn)行測(cè)試,,每次會(huì)按照給定的參數(shù)增加并發(fā)連接數(shù),將 httperf的測(cè)試結(jié)果保存為CSV格式的文件,,該文件可以被Excel直接讀取,,方便生成測(cè)試報(bào)告。借助于autobench自帶的 bench2graph工具可以生成漂亮的測(cè)試結(jié)果對(duì)比圖,,如下: 下載:http://www./autobench/downloads/ 安裝: # yum install gd gnuplot pcre pcre-devel texinfo -y 使用方法:參見下文在實(shí)際測(cè)試中的使用 三、測(cè)試環(huán)境系統(tǒng)環(huán)境 web軟件環(huán)境 在測(cè)服務(wù)器并發(fā)能力時(shí)會(huì)將apache與nginx對(duì)比測(cè)試 硬件環(huán)境 CPU::E5504 2.00GHz 四,、測(cè)試方法1、 分別測(cè)試靜態(tài)文件和動(dòng)態(tài)php文件 1,、開始測(cè)試(1)靜態(tài)文件測(cè)試命令 # autobench --single_host --host1=192.168.8.8 --port1=80 --uri1=/logo.gif --quiet --low_rate=50 --high_rate=1500 --rate_step=50 --num_call=1 --num_conn=2000 --timeout=10 --file /tmp/result.tsv 測(cè)試結(jié)果總結(jié): Apache與Nginx在并發(fā)50~1500時(shí)表現(xiàn)得都還可以,只不過(guò)在并發(fā)數(shù)達(dá)到1500后Apache的響應(yīng)時(shí)間變得很長(zhǎng),,由于系統(tǒng)環(huán)境的制 約,,我沒(méi)有再測(cè)試大于1500的并發(fā)連接情況,但可以對(duì)比看出nginx在1500個(gè)并發(fā)連接的情況下還能保持較低的響應(yīng)時(shí)間,。 (2)動(dòng)態(tài)文件測(cè)試命令 # autobench --single_host --host1=192.168.8.8 --port1=80 --uri1=/test.php --quiet --low_rate=5 --high_rate=100 --rate_step=5 --num_call=1 --num_conn=200 --timeout=10 --file /tmp/nginx_php1.tsv 測(cè)試結(jié)果數(shù)據(jù)
測(cè)試數(shù)據(jù) 測(cè)試總結(jié) 由上面的報(bào)表以及這張曲線圖可以看出,,無(wú)論是apache還是nginx其php并發(fā)大于30其響應(yīng)時(shí)間的就會(huì)直線上升,nginx略好于 apache,,因此可以判斷這臺(tái)服務(wù)器的php并發(fā)極限在30左右,,當(dāng)然這里指的php連接中是沒(méi)有連接數(shù)據(jù)庫(kù)的,也沒(méi)有加入memcached等緩存機(jī) 制,。 (3)高并發(fā)下系統(tǒng)資源情況
分析測(cè)試結(jié)果 CPU使用情況 內(nèi)存使用情況 負(fù)載情況 五、結(jié)論利用httperf結(jié)合autobench可以很方便的測(cè)試出單臺(tái)服務(wù)器的極限并發(fā)數(shù),,這樣對(duì)服務(wù)器性能評(píng)估有很大幫助,,借助于autobench的bench2graph腳本可以生成更為直觀的對(duì)比圖。 針對(duì)被測(cè)服務(wù)器,,經(jīng)過(guò)apache與nginx的對(duì)比發(fā)現(xiàn),,在靜態(tài)文件的處理方面如果并發(fā)小于1500,apache和nginx之間的差距還是很 小的,。在動(dòng)態(tài)php文件的并發(fā)測(cè)試中,,nginx體現(xiàn)出其強(qiáng)大的性能優(yōu)勢(shì),如果內(nèi)存足夠大,,通過(guò)調(diào)整php-cgi數(shù)量,,相信可以承載更多的并發(fā)連接。 六,、附錄1,、問(wèn)題解決(1)當(dāng)運(yùn)行時(shí)報(bào)如下錯(cuò)誤 httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE 解決方法 其意思是說(shuō)在httperf在發(fā)起連接請(qǐng)求時(shí),單個(gè)進(jìn)程已經(jīng)無(wú)法再打開更多的文件描述符,。在發(fā)起連接請(qǐng)求時(shí)httperf使用select()方法使用一個(gè)新的文件描述符,。因此需要增加文件描述符限制 步驟1:編輯/etc/security/limits.conf 在最后添加下面兩行內(nèi)容 步驟2:編輯 /usr/include/bits/typesizes.h 文件修改__FD_SET_SIZE常量值,如下 步驟3:重新編譯httperf 2,、參考文章http://www./qiujian5628/archive/2008/03/10/44060.html 原創(chuàng)文章,,轉(zhuǎn)載請(qǐng)注明: 轉(zhuǎn)自 http:// |
|