Apache-2.2
令人不安的 AB 基準測試結果?
在系統管理員方面,我是一個真正的菜鳥。我正在 EC2 微實例上執行應用程序。
在我公開發布之前,我想確保我達到了最低水平的性能。我正在嘗試一些壓力測試,但我一直在努力尋找好的組合來幫助我了解自己的表現。
我已經測試了可以說是負載最大的頁面,我很好奇這是否足夠適合一個剛剛啟動的網站,最好的情況是,如果媒體恰到好處,一周內可以看到 10k 的唯一身份。
ab -n 5000 -c 10 http://mysite.com requests/sec: 53.36 time per request: 18.739 ms transfer rate: 12.66kb total transferred 1215000 bytes
沒有失敗的請求。我的 CPU 最高達到了 49% 左右,而且記憶體沒有太多的負擔。平均負載飆升至 5.70。
95% 的請求在 500 毫秒內得到處理。一個請求耗時 84996 毫秒。
我在 Ubuntu 10.4 上使用 Apache2.x 和 mod_wsgi。我很確定 MPM 是 Prefork。此伺服器處於測試模式,因此沒有外部負載。
並發似乎是這裡的大問題。當我刪除它時,伺服器快如閃電。當我添加超過 10 個並發時,我收到一條錯誤消息:“指定的超時已過期 (70007)”。
這可能都沒有實際意義,因為我才剛剛開始。我很想听聽意見。
謝謝。
在調整 prefork apache 時我會考慮的一些事情:
- 檢查您的 MaxClients 和 ServerLimit。這告訴您的伺服器一次可以執行多少個程序。您應該根據每個程序執行的記憶體與您的 RAM 限制進行限制。確保為伺服器上執行的其他程序(系統、MySQL 等)留出記憶體
- 檢查 StartServer、MinSpareServers、MaxSpareServers。確保以足夠的程序啟動伺服器來處理傳入的請求,並確保有足夠的時間來處理負載。創建新執行緒的成本相對昂貴,並且會減慢您的請求。
- 保持您的 KeepAliveTimeout 非常低。這基本上是在繼續下一個請求之前,程序保持打開的時間足夠長以擷取更多請求。對於前叉,我將我的保持在 2
KeepAliveTimeout 2
只是一些指示……希望這會有所幫助