一、基準測試工具
基準測試工具提供在各種不同的模擬用戶請求發生時有關Web服務器響應的統計信息。它們允許我們模擬任意數量的請求Web服務器上某個特定Web文檔的用戶,更重要的是,它允許我們模擬任意數量的用戶同時訪問Web服務器上的文檔(并發請求)。
例如,每個工具提供的信息都與下列內容有關:
1、響應一個請求所花費的總時間
2、來自服務器的總響應大小
3、Web服務器每秒可以處理的請求總數
二、Apache Benchmark
在這里我向大家介紹一下Apache Benchmark(ab/ab2)工具。
這是一個最著名的基準測試工具之一,它是默認的Apache安裝的一部分,能夠通過模擬對特定URL的任意數量請求來對Web服務器進行負載測試。ab工具提供以下信息:
1、傳輸的總數據大小(以字節為單位)
2、Web服務器在模擬流量下每秒可以支持的請求總數
3、完成一個請求所花費的最長時間(以毫秒為單位)
4、完成一個請求所花費的最短時間(以毫秒為單位)
注:在ubuntu操作系統中運行的是ab命令,而筆者使用的是opensuse,此系統下使用的命令是ab2.所以筆者在操作的時候使用的是ab2命令,但是為了方便,寫的時候一律寫ab命令。
使用ab工具還可以運行很多不同的負載模擬,例如:
1、對Web文檔的模擬請求
2、指定時間內的請求
3、打開Keep-Alive時的請求
最重要的是,Apache Benchmark是獨立與Apache Web服務器的,從而可以在運行ab的同時使運行此工具的
計算機上的Web服務器處于非活動狀態。
三、安裝Apache Benchmark
在linux/Unix系統下,只要安裝了apache之后就可以使用ab命令了。
在windows下,用戶可以打開http://httpd.apache.org/。加載此頁后,單擊頁面左側的"Download from a mirror"(從鏡像下載)鏈接,找到適合你的系統的相應下載程序包,即Window 32 Binary版本,然后下載。
當程序包下載完后,就可以運行安裝向導在系統的任意位置上html' target='_blank'>安裝軟件。我將Apache安裝再默認位置C:/Program Files/Apache Software Foundation,但也可以安裝在系統的任意位置。此處所選擇的位置就是APACHE_HOME引用所指向的位置。
現在,打開<APACHE_HOME>/Apache2.2/bin。應該可以看到如下圖所示文件和目錄的集合。
四、使用ab命令
現在,讓我們來使用ab這個工具吧。(基準測試以www.example.com為例)
所有ab命令的組成遵循此結構:
ab [options] [full path to web document]
例:
ab -n 1 http://www.example.com/
n表示再指定的URL上執行的請求數。在這個例子里,ab只請求Web文檔一次,但是n的值可以是小于50000的任意數字。默認情況下,n設置為1。
該命令的下一部分是URL部分。對于剛剛執行的命令,URL為http://www.example.com/。如果選擇測試此域中的某個文檔,如test.php(并不存在),則URL為:http://www.example.com/test.php
執行上面命令的結果如下圖所示:

URLhttp://www.example.com的ab響應上圖的數據分為4個部分
1、服務器信息
包含Web服務器運行的軟件、主機名和服務器監聽的端口號。
2、腳本信息
包含有關運行模擬的Web文檔的信息。Document Path包含請求的文檔,而Document Length包含所有HTML、圖像、CSS、JS以及響應中任何內容的字節數總和。
3、連接信息
包含信息的主體。它回答了諸如“收到請求響應需要多長時間?”、“返回了多少數據?”之類的信息,最重要的是它回答了“處理文檔時Web服務器可以支持多少用戶?”。
下表提供了此部分數據的完整列表和描述。


ab響應描述
4、連接指標細目分類
最后一個部分包含一個表,其中包含Connect、Processing、Waiting以及Total字段。這些字段告訴我們請求在每個過程狀態中所需的時間。我們最感興趣的是Total字段及其最大、最小值列。


ab選項標記
下面結合上面的標記進行一些測試
1、并發測試
模擬一個并發測試,同時對Web服務器進行10個并發請求,直到進行到100個請求位置。使用c標記時的一項警告是讓使用的值小于等于要進行的請求總數n。
例:ab -n 100 -c 10 http://www.example.com
ab命令響應如下圖


www.example.com的并發模擬結果
通過模擬的并發請求,我們可以看到Request per second字段,并注意到Web服務器每秒可以支持 個請求(用戶)。分析Connection Metrics的Total min和max列,我們注意到再10個并發請求的指定流量負載下,最快的響應為371毫秒,而最慢的請求花了575毫秒。
但是,我們知道流量不會只是持續1、2或3秒,高流量可能會持續幾分鐘、幾小時,甚至是幾天。下面讓我們運行一個模擬來測試一下。
2、時間測試
t標記可以檢查在任何時間內Web服務器執行的情況。
下面我們使用以下命令來模擬10個用戶在20秒的時間內同時訪問網站:
ab -c 10 -t 20 http://www.example.com/
注:該命令不包含n標記,但默認情況下包含該標記并且使用t選項時ab將其值設置為50000。某些情況下,使用t選項時,最大請求數可能會達到50000,此時模擬結束。
ab命令響應如下圖


瀏覽器標頭信息。PHP編程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。