轉自:http://leepiao.blog.163.com/blog/static/485031302010234352282/php
壓力測試是一種基本的質量保證行爲,它是每一個重要軟件測試工做的一部分。壓力測試的基本思路很簡單:不是在常規條件下運行手動或自動測試,而是在計 算機數量較少或系統資源匱乏的條件下運行測試。一般要進行壓力測試的資源包括內部內存、CPU 可用性、磁盤空間和網絡帶寬等。通常用併發來作壓力測試。html
1.apache安裝算法
下載:
從Apache官方網站http://httpd.apache.org/download.cgi下載httpd-2.0.58.tar.gz。
安裝:
先解壓縮tar文件
tar -zxvf
(1)./configure –prefix=/usr/local/apache2test –enable-so –enable-shared=max –with-mpm=worker –enable-deflate –enable-headers –enable-rewrite –enable-proxy –enable-proxy –enable-ssl –with-ssl=/path/to/install/openssl_0.97i –enable-modules=all && make && make install
(這是正式服務器上的apache2的編譯參數,其中–with-mpm=worker –with-ssl=/path/to/install/openssl_0.97i能夠根據實際狀況作出修改)
而後安裝php,而且在/usr/local/apache2test/conf目錄下的httpd.conf裏面的DSO支持以後加入
AddType application/x-httpd-php .php .phtml .html .htm
AddType application/x-httpd-php-source .phps
最後將測試的php網頁文件添加到/usr/local/apache2test/htdocs目錄下apache
(2) make服務器
(3)make installcookie
2.測試工具說明以及安裝網絡
ab:
ab是Apache超文本傳輸協議(HTTP)的性能測試工具。 其設計意圖是描繪當前所安裝的Apache的執行性能,主要是顯示你安裝的Apache每秒能夠處理多少個請求;
概要:運行/usr/local/apache-install-path/bin/ab -help查看ab的具體命令選項;
命令選項-c concurrency 一次產生的請求個數。默認是一次一個。
-n requests 在測試會話中所執行的請求個數。 默認時,僅執行一個請求,但一般其結果不
運行結果:主要要注意的是如下內容
Time taken for tests: 總共執行所花費的時間.(以上 1000 次共多久)
Requests per second:
備註:每次僅僅能針對一個鏈接作重複的測試。併發
Siege:
是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:能夠根據配置對一個WEB站點進行多用戶的併發訪問,記錄每一個用戶全部請求過程的相應時間,並在必定數量的併發訪問下重複進行。
下載/安裝
Siege時一個開放源代碼項目,能夠在http://www.google.com上查找
備註:最好選擇2.5以上版本,由於高版本多包括一個輔助工具,可以作增量壓力測試,低版本不包括此工具。
安裝:
%./configure –prefix=/path/to/install && make && make installapp
使用說明:
siege使用
在/path/to/install/bin/目錄下建立須要測試的連接文件,如www.test.com.url,添加須要的測試的連接ide
http://10.5.3.122/test/google.php/
http://10.5.3.122/test/baidu.php/
http://10.5.3.122/test/sogou.php/
而後保存。
siege使用樣例:
siege -c 20 -r 2 -f www.chedong.com.url
參數說明:
-c 20 併發20個用戶
-r 2 重複循環2次
-f www.test.com.url 任務列表:URL列表
輸出樣例:
** Siege 2.59
** Preparing 20 concurrent users for battle. 此次「戰鬥」準備了20個併發用戶
The server is now under siege.. done. 服務在「圍攻」測試中:
Transactions: 40 hits 完成40次處理
Availability: 100.00 % 成功率
Elapsed time: 7.67 secs 總共用時
Da
Response time: 1.65 secs 相應用時1.65秒:顯示網絡鏈接的速度
Transaction rate: 5.22 trans/sec 平均每秒完成5.22次處理:表示服務器後臺處理的速度
Throughput: 114385.92 bytes/sec 平均每秒傳送數據:114385.92字節
Concurrency: 8.59 最高併發數 8.59
Successful transactions: 40 成功處理次數
Failed transactions: 0 失敗處理次數
bombardment使用樣例:
bombardment www.test.com.url 5 3 4 1
初始化URL列表:www.test.com.url
初始化爲:5個用戶
每次增長:3個用戶
運行:4次
每一個客戶端之間的延遲爲:1秒
輸出樣例和siege一致,可是會在每一次增量結束以後都有輸出。
3.測試方法說明
測試步驟:
方法1.安裝apache2後,直接使用apache2的默認設置配置,不作任何修改,進行測試;
方法2.按照之前文檔提出的Web容量規劃和內存的大小,計算出相應的啓動進程數,配置httpd.conf文件,再進行測試;
ServerLimit
StartServers
MinSpareServers
MaxSpareServers
MaxClients
MaxRequestsPerChild
方法3.超過極限設置,進行測試。(規劃容量的2倍進行)
1000個連接,分爲不一樣的併發數請求,十、50、100、200、300、500
ab測試:
/usr/local/apache2.53/bin/ab -n 1000 -c 10 http://10.5.3.122/test/google.php/
/usr/local/apache2.53/bin/ab -n 1000 -c 50 http://10.5.3.122/test/google.php/
/usr/local/apache2.53/bin/ab -n 1000 -c 100 http://10.5.3.122/test/google.php/
/usr/local/apache2.53/bin/ab -n 1000 -c 200 http://10.5.3.122/test/google.php/
/usr/local/apache2.53/bin/ab -n 1000 -c 300 http://10.5.3.122/test/google.php/
/usr/local/apache2.53/bin/ab -n 1000 -c 500 http://10.5.3.122/test/google.php/
siege測試:
/usr/local/siege/bin/siege -c 10 -r 100 -f www.test.com.url
/usr/local/siege/bin/siege -c 50 -r 20 -f www.test.com.url
/usr/local/siege/bin/siege -c 100 -r 10 -f www.test.com.url
/usr/local/siege/bin/siege -c 200 -r 5 -f www.test.com.url
/usr/local/siege/bin/siege -c 300 -r 3 -f www.test.com.url
/usr/local/siege/bin/siege -c 500 -r 2 -f www.test.com.url
增量測試:
/usr/local/siege/bin/bombardment www.test.com.url 1 100 5 1
/usr/local/siege/bin/bombardment www.test.com.url 1 100 6 1
4.測試結果總結
ab測試:測試併發鏈接數在50~500的狀況下,方法2比方法1性能略有提高,可是相差在10個併發鏈接數左右,而且方法1方法2在測試併發數100的狀況下,實際併發數都相差無幾。
siege測試:測試併發數從50以後直到500,性能都有提高,而且在測試併發數100、200、500的狀況下,提高相差10~30個實際併發數。
bombardment測試:相差不大。
本次測試的結果不太理想,性能的變化不顯著,也不明顯,能夠所屬於失敗的測試結果。
分析緣由:1.自己硬件配置不高,因此默認設置和修改後的設置變化不明顯,對性能的提高也明顯不足;
2.負載狀況太少,因爲系統性能緣由,增量測試都不能過大的進行,系統性能load average太高;
3.測試頁面程序也太少,沒有太大說服力。
ab壓力測試
之前安裝好APACHE老是不知道該如何測試APACHE的性能,如今總算找到一個測試工具了。就是APACHE自帶的測試工具AB(apache benchmark).在APACHE的bin目錄下。
格式: ./ab [options] [http://]hostname[:port]/path
參數: