Web開發,少不了的就是壓力測試,它是評估一個產品是否合格上線的基本標准,下面我們來一一剖析他們的使用方式。
測試前,前面先把系統的端口限制數改大,看看Mac下面的默認限制
ulimit -a open files (-n) 2560
2000多的fd數是很小的,我們把他改大,當然我測試過了,也只能開10000而已,Linux可以開6W多,所以:
ulimit -n 10000
在用 ulimit -a 檢查一下
open files (-n) 10000
接下來把cpu檢查打開,通常我們只看使用率最高的那個即可:
top -n1
-n3 就是前面3個了,以此類推。
OK我們可以繼續了。。。
webbench
webbench是一枚強大得可以的壓力測試工具,它最多可以模擬3萬個並發連接去測試網站的負載能力,個人感覺要比Apache自帶的ab壓力測試工具好,安裝使用也特別方便。
安裝:
sudo port install webbench
用法:
webbench -c 並發數 -t 運行測試時間 URL
如:
webbench -c 5000 -t 120 http://www.epooll.com
ab
ab是Apache自帶的壓力測試工具,非常小巧,可惜的是在mac下面表現不佳,跳動太大,而且還會出現 apr_socket_recv: Connection reset by peer (54) 的錯誤。ab想說愛你不容易呀,不過Linux下還是比較穩定的,所以還是來說說用法吧。
安裝:
http://apache.mirrors.pair.com/httpd/
用法:
ab -c 並發數 -n 請求數 URL
如:
ab -c 1000 -n 10000 http://www.epooll.com
當然其他用法就自己 man ab 然后好好看文檔啦
siege
siege是我解決ab該死的 apr_socket_recv: Connection reset by peer (54) 錯誤時發現的一個好工具,不得不說這工具真心好,用法和webbench一樣,但是信息全面很多。
安裝:
sudo port install siege
用法:
siege -c 並發數 -t 運行測試時間 URL
如:
siege -c 1000 -t 5s URL
這里要注意的是-t后面的時間要帶單位,s表示秒,如果不帶,就是分鍾,分鍾的單位,還是挺長的,所以要注意一下。