我正在用`ab'工具測試我的Apache & PHP設置(Ubuntu上的默認配置)。隨着2個併發連接我得到相當滿意的結果:優化Apache和PHP的併發性能
ab -k -n 1000 -c 2 http://localserver/page.php
Requests per second: 184.81 [#/sec] (mean)
Time per request: 10.822 [ms] (mean)
Time per request: 5.411 [ms] (mean, across all concurrent requests)
由於它是一個虛擬機與低內存,也沒關係。現在我想測試一個更現實的場景:同時連接100個用戶(讀取:連接)的請求:
ab -k -n 1000 -c 100 http://localserver/page.php
Requests per second: 60.22 [#/sec] (mean)
Time per request: 1660.678 [ms] (mean)
Time per request: 16.607 [ms] (mean, across all concurrent requests)
這更糟糕。雖然總體上每秒請求的數量並沒有明顯下降(184至60#/秒),但從用戶角度的每個請求的時間已經急劇增加(從10ms到平均超過1.6秒)。最長的請求花費了8秒鐘,並且在測試期間通過網絡瀏覽器手動連接到本地服務器需要將近10秒。
原因是什麼?如何將併發性能優化到可接受的水平?
(我使用的是默認配置隨Ubuntu Linux操作系統的服務器。)
首先這不取決於本地腳本執行什麼?你可以使用memcache(d)嗎? –
本地腳本正在執行一堆簡單的echo語句。我故意沒有包含任何數據庫工作。 – JohnCand
如果它是一個內存不足的虛擬機,爲什麼不使用nginx,lighttp或其他? – Matt