Apache壓力測試(性能監控)
一:ab【Apache Benchmark】
簡介:AB是Apache自帶的一種壓力測工具,安裝完apache後,就可以在bin目錄下找到ab工具.ab命令會創建很多的併發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基於URL的,因此,既可以用來測試Apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web服務器的壓力。ab命令對發出負載的計算機要求很低,既不會佔用很高CPU,也不會佔用很多內存,但卻會給目標服務器造成巨大的負載,其原理類似CC***。自己測試使用也須注意,否則一次上太多的負載,可能造成目標服務器因資源耗完,嚴重時甚至導致死機。
1:參數介紹
-A auth-username:password 對服務器提供BASIC認證信任。 用戶名和密碼由一個:隔開,並以base64編碼形式發送。 無論服務器是否需要(即, 是否發送了401認證需求代碼),此字符串都會被髮送。
-c concurrency 一次產生的請求個數。默認是一次一個。
-C cookie-name=value 對請求附加一個Cookie:行。 其典型形式是name=value的一個參數對。 此參數可以重複。
-d 不顯示"percentage served within XX [ms] table"的消息(爲以前的版本提供支持)。 -e csv-file 產生一個以逗號分隔的(CSV)文件, 其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙爲單位)時間。 由於這種格式已經“二進制化”,所以比'gnuplot'格式更有用。
-g gnuplot-file 把所有測試結果寫入一個'gnuplot'或者TSV (以Tab分隔的)文件。 此文件可以方便地導入到Gnuplot, IDL, Mathematica, Igor甚至Excel中。 其中的第一行爲標題。
-h 顯示使用方法。
-H custom-header 對請求附加額外的頭信息。 此參數的典型形式是一個有效的頭信息行,其中包含了以冒號分隔的字段和值的對 (如, "Accept-Encoding: zip/zop;8bit"). -i 執行HEAD請求,而不是GET。
-k 啓用HTTP KeepAlive功能,即, 在一個HTTP會話中執行多個請求。 默認時,不啓用KeepAlive功能.
-n requests 在測試會話中所執行的請求個數。 默認時,僅執行一個請求,但通常其結果不具有代表意義。
-p POST-file 包含了需要POST的數據的文件.
-P proxy-auth-username:password 對一箇中轉代理提供BASIC認證信任。 用戶名和密碼由一個:隔開,並以base64編碼形式發送。 無論服務器是否需要(即, 是否發送了401認證需求代碼),此字符串都會被髮送。
-q 如果處理的請求數大於150, ab每處理大約10%或者100個請求時,會在stderr輸出一個進度計數。 此-q標記可以抑制這些信息。
-s 用於編譯中(ab -h會顯示相關信息)使用了SSL的受保護的https, 而不是http協議的時候。此功能是實驗性的,也是很簡陋的。最好不要用。
-S 不顯示中值和標準背離值, 而且在均值和中值爲標準背離值的1到2倍時,也不顯示警告或出錯信息。 默認時,會顯示 最小值/均值/最大值等數值。(爲以前的版本提供支持).
-t timelimit 測試所進行的最大秒數。其內部隱含值是-n 50000。 它可以使對服務器的測試限制在一個固定的總時間以內。默認時,沒有時間限制。
-T content-type POST數據所使用的Content-type頭信息。
-v verbosity 設置顯示信息的詳細程度 - 4或更大值會顯示頭信息, 3或更大值可以顯示響應代碼(404, 200等), 2或更大值可以顯示警告和其他信息。
-V 顯示版本號並退出。
-w 以HTML表的格式輸出結果。默認時,它是白色背景的兩列寬度的一張表。
-x <table>-attributes 設置<table>屬性的字符串。 此屬性被填入<table 這裏 >. -X proxy[:port] 對請求使用代理服務器。
-y <tr>-attributes 設置<tr>屬性的字符串.
-z <td>-attributes 設置<td>屬性的字符串.
2:測試分析
二:【Http_Load】
簡介:Http_Load 以並行複用的方式運行,用以測試web服務器的吞吐量與負載。但是它不同於大多數壓力測試工具,它可以以一個單一的進程運行,一般不會把客戶機搞死,可以可以測試HTTPS類的網站請求。
1:編譯安裝
tar -zxvf http_load-12mar2006.tar.gzcd http_load-12mar2006/
vim Makefile
make && make install
2:參數簡介
-parallel 簡寫-p :含義是併發的用戶進程數。-fetches 簡寫-f :含義是總計的訪問次數-rate 簡寫-p :含義是每秒的訪問頻率-seconds簡寫-s :含義是總計的訪問時間
3:測試分析
編寫URLlist測試文件bash腳本makeurllist.sh
壓力測試
三:【Webbench】
簡介:Webbench是有名的網站壓力測試工具,它是由 Lionbridge公司開發。Webbech能測試處在相同硬件上,不同服務的性能以及不同硬件上同一個服務的運行狀況。webbech的標準測試可以向我們展示服務器的 兩項 內容:每秒鐘相應請求數和每秒鐘傳輸數據量。不但能具有便準靜態頁面的測試能力,還能對動態頁面ASP,PHP,JAVA,CGI進 行測試的能力。支持對含有SSL的安全網站例如電子商務網站進行靜態或動態的性能測試,是Linux下的一個網站壓力測試工具,最多可以模擬3萬個併發連接去測試網站的負載能力。
1:編譯安裝
tar -zxvf webbench-1.5.tar.gz
cd webbench-1.5/
vim Makefile
make && make install
2:參數簡介
3:測試分析
四:【Siege】
簡介:Siege是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB站點進行多用戶的併發訪問,記錄每個用戶所有請求過程的相應時間,並在一定數量的併發訪問下重複進行。利用Siege提供的測試結果來分析性能指標或者分析他們提供的服務在不同負載條件下的性能情況,分析測試結果,找出影響系統性能的瓶頸。
1:編譯安裝
tar -zxvf siege-latest.tar.gz
cd siege-3.0.0/
./configure
make && make install
2:參數簡介
3:測試分析
五:【Httperf】
簡介:Httperf 是個web 服務器的性能測試工具,來自惠普公司。提供了靈活的生成各種 HTTP 負載來測試服務器的性能,提供可靠、高性能的工具,支持 HTTP/1.1 和 SSL
1:編譯安裝
①tar -zxvf httperf-0.9.0.tar.gz
cd httperf-0.9.0/
./configure --prefix=/usr/local/src/httperf
make && make install
②編輯環境變量文件,將httperf的bin路徑加入到系統環境變量。
③創建軟連接將man手冊加入到系統默認路徑下。
ln -s /usr/local/src/httperf/share/man/man1/httperf.1
/usr/local/share/man/man1/httperf.1
2:參數簡介
rate是指每秒多少個請求數
num-conn指共發多少個請求
num-call每次連接發送的請求數通常爲1
3:測試分析