我們的Web應用程序的吞吐量似乎是由連接速度慢的限制。在負載測試中,我們可以輕鬆達到約5000個請求/秒。但是在實踐中,我們最多可以達到約1000個請求/秒。服務器並不真正承受嚴重的負載,無論是IO還是CPU。這同樣適用於數據庫。主要的區別似乎是最工作者線程是由不能接受的響應速度不夠快的客戶放緩(通常反應是幾MB的大小)。如何處理許多連接速度較慢
我們幾乎沒有任何靜態資源。問題是關於動態生成的內容。它是用Spring框架實現的。但是我認爲任何其他基於servlet的實現都不會有所不同。
那麼我們有什麼選擇來提高吞吐量?是否有某種形式的緩存可以將快速吸收反應,釋放工作線程,然後異步它以自己的速度向客戶交付?
我們寧願不增加處理線程的數量,因爲它們保持數據庫連接在大多數處理中處於打開狀態。我們正在尋找一種解決方案,即少量工作線程可以全速工作。
我發現你的問題的解決方案的描述[這裏](http://serverfault.com/a/406684)。 nginx的 「反向代理」 聲音[有爲](https://www.nginx.com/resources/admin-guide/reverse-proxy/)。如果它有效,讓我們知道你自己的問題的答案,那麼我可能有一天也需要它。 – vanOekel
感謝您的提示。是的,啓用緩衝的nginx反向代理似乎是我們正在尋找的。我們需要一段時間才能對其進行配置並驗證它是否會增加我們在現實環境中的吞吐量。 – Codo