Nginx
如何最大化 fluentd 伺服器的使用率?
我有一個流利的伺服器,平均處理 1000 個請求/秒。該伺服器由 32 個 cpu 組成。在這台伺服器上執行 32 個 fluentd docker 容器,配置相同。伺服器的入口點是一個 nginx 作為負載均衡器,配置了循環算法並將其發送到不同的容器。容器和 nginx 都在 24224/tcp 上偵聽。
該節點的輸入是 6 個使用fluent-logger-csharp發送到 fluentd 伺服器的 C# 應用程序。因此,對於每個應用程序打開一個到 Fluentd 伺服器的連接,由於流量很大,應用程序會保持打開套接字。這導致 32 個 docker 中只有 6 個正在處理請求。
如何在不修改 C# 客戶端的情況下更好地利用伺服器?
首先,我會檢查瓶頸是什麼:
如果您的應用程序沒有超載
fluentd
服務,那麼為什麼還要使用 32 核呢?如果
fluentd
輸出是瓶頸,您可以使用帶有num_thread
選項的多執行緒;這樣,您可能希望在 6 個fluentd
實例上使用 5 個執行緒,最多添加 30 個核心,而不是僅使用 6 個的 32 個單個實例。至於輸入,如果您的伺服器保持連接打開,那麼這確實是您的瓶頸,然後您可能希望部署更多這些服務以增加流式輸入的日誌輸出數量。