我知道關於這個主題有很多問題,但我沒有找到可以幫助我的答案。
我試圖讓 Apache httpd 回答 200 個並發連線。我正在使用 jMeter 進行測試,使用 prefork 獲取一個小的靜態文字檔案(大約 100 位元組); MaxClient & ServerLimit 為 500,記憶體和 CPU 皆不限制(均低於 50%),頻寬為 1Gbps。
- 如果我只啟動一個連接,回應時間約為7ms
- 如果我啟動幾個並發連線(例如 2 或 3 個),回應時間將達到 70 毫秒
- 如果我開始多一點(比如說20),回應時間就會超過2秒即使是第一次連接
使用keep-alive並沒有太大改變。重新啟動 httpd 也沒幫助。
難道我做錯了什麼?我該如何解決這個問題?
先致謝
格雷格
答案1
為了解決這個問題,我必須永久增加正在運行的進程的數量。代替:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
我改為:
StartServers 300
MinSpareServers 300
MaxSpareServers 300
現在回應時間是可以接受的。即使對於快速電腦來說,創建/殺死進程似乎也非常繁重...