
因此,我在 Ubuntu 上設定了一個 Amazon EC2 小型實例,並在 Passenger + Nginx 上執行 Ruby Enterprise Edition。我設定了 25 個 Passenger 實例,相對於並發連線數,效能下降得非常快。
例如,來自 JMeter 的 1 個並發連線時,回應時間小於 1 秒。然後,在 5 個並發連接時,反應時間會跳躍超過 1 秒。當我嘗試 10 個並發連線時,回應時間平均在 3-7 秒之間!
我想,既然我有 25 個實例在運行,它至少應該能夠處理 25 個並發連接,而不會降低太多效能?顯然我是 Web 伺服器的新手......有人可以向我解釋這種效能下降的原因嗎?
是不是CPU太慢了?我覺得 1.7GB 記憶體應該足夠了...考慮到每個實例顯然只運行大約 30MB 記憶體。
任何有關如何正確配置 Passenger + Nginx 的進一步見解將不勝感激!
謝謝!
答案1
在進行測試時,您應該查看 CPU 和記憶體使用情況。
根據您的描述(並且不了解任何有關程式碼的情況),聽起來 CPU 陷入困境,或者可能正在某處等待某些鎖定的資源(資料庫?)。