Mongodb
MongoDB 連接數是否太高?
我目前在生產環境中執行我的 MongoDB。它有 1 個 Primary、1 個 Secondary 和一個 Arbiter。ubuntu 機器的配置相當不錯,它有 56GB 的 RAM 和大約 100GB 的硬碟空間。自從 MongoDb 連續執行以來,已經過去了一周左右的時間。我做了一些關於 uLimit 的閱讀,它被設置為
httpd soft nofile 10240 httpd hard nofile 10240 * soft nofile 65000 * hard nofile 65000
我們的伺服器端是 Java,我們已經實現了連接池。今天當我做了一個 db.serverStatus() 時,在連接下我得到了以下
"connections" : { "current" : 19314, "available" : 32686, "totalCreated" : NumberLong(53770) },
這是我應該關心的事情嗎,因為我找不到任何限製或數字來告訴我在 mongoDB 崩潰之前我已經達到了危險限制。如果有什麼我應該做的,誰能告訴我?
主要是記憶體。每個連接都會分配一個堆棧,大小為 1MB。您擁有的連接越多,它們需要的 RAM 就越多,可用於在 RAM 中保存索引或工作數據集的 RAM 就越少。
因此,對於您的 19314 連接,大約 19GB 的 RAM 用於連接。這大約是您可用 RAM 的三分之一——從我的角度來看,這太多了。可接受的內容與您的案例、性能需求等有很大關係。找出可接受的 RAM 使用率超出了答案的範圍,可能需要數小時的分析和優化。