Web-Server
對移動設備的緩慢網路響應阻塞了我的 apache 工作人員
我正在執行一個 Web 伺服器(apache,但我認為沒有真正的區別),它為移動設備提供大量請求(每秒數百個)。該伺服器是純 Web 伺服器與 J2EE 應用程序伺服器的前端伺服器的混合體(通過 AJP 之類的東西連接)。
我注意到的是,我經常不得不增加 Apache 工作人員的數量以跟上請求的數量。當瓶頸開始發生時,我看到大量(~90%)的工作人員忙於“寫給客戶端”和“關閉連接”。
我明白這是正常的。考慮到客戶端的連結速度較慢,它會阻止 Apache 工作人員,直到工作人員可以處理單個客戶端請求。但我想知道是否有一個專用的系統,硬體或軟體可以緩衝請求/響應的流量。我聽說過所有這些“流量加速”硬體,但我真的不知道從哪裡開始尋找能夠做到這一點的硬體。
謝謝!
既然你提到了硬體,你可能想看看像 F5 的 BigIP 這樣的東西,它可以在這種情況下產生巨大的差異。它將終止那些移動(和其他)客戶端連接、假離線內容並優化後端流程。不過都是很貴的東西。
移動客戶端的另一個技巧是,由於信號強度低於理想而不是鏈路擁塞,它們經常會失去數據包。這會導致 TCP/IP 堆棧後退,因此數據速率可能很糟糕。BigIP 也可以幫助這種情況,因此可能值得研究。
在開源前端,您可以考慮使用 nginx 或其他非同步 I/O 代理來前端您的系統,並可能稍微緩衝這些連接。這可能是一個很好的第一步嘗試 - 您可以在 nginx 上啟用代理緩衝,因此效果將是解除安裝到 nginx 的連接,而不是 apache 和它背後的動態應用程序。