使用 ApacheBench 進行網站伺服器壓力測試
軟體開發ApacheBench 是一個極為輕量級的壓力測試工具,通常只要電腦有安裝 Apache 伺服器就會有這個工具。ApacheBench 僅能測試一個網頁所能承受的負載能力,並無法模擬真正使用者操作網站的複雜動作。儘管如此,ApacheBench 測試所提供的數據還是非常值得參考的,重點是它非常簡單好學。
ApacheBench 小檔案
軟體名稱:ApacheBench
軟體性質:免費
官網說明:[詳細說明]
指令說明
ApacheBench 預設路徑為:
作業系統 | 位置 |
---|---|
Windows | [Apache 安裝目錄]\bin\ |
Linux | /usr/bin/ |
如果環境變數有設定好可直接輸入以下指令看看電腦是否有安裝 ApacheBench 工具,如果沒有請先切換到上面說明的路徑之後再輸入以下指令看看。
$ ab -h
有安裝的話應該會出現如下畫面。
上圖是 ApacheBench 完整的參數說明,以下說明常用的參數供大家參考。
指令:ab
-k // 使用 KeepAlive 連線
-c // 同時連線數量
-n // 整個壓力測試的 Request 數量
數據解讀
現在我們模擬 100 個人同時連入 http://127.0.0.1/,全部產生 500 個 Request,輸入以下指令即可。
$ ab -k -c 100 -n 500 http://127.0.0.1/
等待 1~2 秒鐘應該就可以跑完了,底下是這次壓力測試的數據,主要我們可以觀看以下幾個指標:
指標名稱 | 說明 |
---|---|
Complete requests | 完成的 Request 次數 |
Failed requests | 失敗的 Request 次數 |
Requests per second | 每秒能處理的 Request (越大越好) |
Time per request | 單獨完成一個 Request 的時間(越短越好) |
Connection Times | |
--Connect | client 發出 Request 到 server 收到的時間 |
--Processing | server 收到 Request 到 server Response 的時間 |
--Waiting | client 發出 Request 到 client 收到 Response 的時間 |
--Total | Connect + Processing |
雖然 ApacheBench 只可以模擬單一網頁的負載量,但我還是很常使用這個工具,實際上我會使用它來調整伺服器的網路負載,因為它可以在短時間內讓我知道我調整的參數是否有效,然後模擬複雜動作的操作則是使用 Apache JMeter 來達成。另外我在使用 ApacheBench 的時候有時候會發生 Failed requests 數量極高 (高達 95% 以上都失敗),後來找了半天才發現在短時間內使用 ApacheBench 有時候 Request 會送不出去,所以大家在使用時可以順便觀看一下網路流量,如果流量很低的話,這次的壓力測試數據就不是那麼值得參考了。
0 則留言