為什麼mongodb會在一段時間後掛起?
mongodb (3.6.3) PRIMARY 伺服器有問題。一段時間後,它會進入仍然是 PRIMARY 但不接受連接的狀態。問題是它保留了 PRIMARY 角色,因此我們的應用程序崩潰了。在 PRIMARY 伺服器上重啟 Mongodb 有幫助,一切恢復正常。
我們在亞馬遜的 3 個具有 3000 IOPS EBS 卷的 Ubuntu m5.4xlarge 實例上託管 mongodb。
在崩潰期間,我們與 MongoDB 的連接比平時多約 30%,但它們仍遠低於限制,也遠低於 fs.file-max 設置為 6430188。沒有其他指標看起來可疑。RAM、CPU、磁碟和網路使用率與崩潰前和 PRIMARY 重啟後處於同一水平。我們已經將 MongoDB 從 3.4.14 遷移到 3.6.3,問題仍然每 1-2 天出現一次。我們還更改了 PRIMARY 伺服器的優先級並將此角色遷移到另一台主機,因此它不會連接到任何特定機器。
日誌上沒有什麼有趣的。
以下是我們在伺服器處於無響應狀態時執行的一些命令的輸出:
$ mongo -u root -p pass --authenticationDatabase admin --eval 'rs.status()' MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 2018-03-29T02:21:48.272+0000 E QUERY [thread1] Error: network error while attempting to run command 'saslStart' on host '127.0.0.1:27017' : DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20 @(auth):6:1 @(auth):1:2 $ mongo -u root -p pass --authenticationDatabase admin --eval 'db.runCommand( { "connPoolStats" : 1 } )' MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 2018-03-29T02:21:48.272+0000 E QUERY [thread1] Error: network error while attempting to run command 'saslStart' on host '127.0.0.1:27017' : DB.prototype._authOrThrow@src/mongo/shell/db.js:1608:20 @(auth):6:1 @(auth):1:2 $ mongo -u root -p pass --authenticationDatabase admin --eval 'db.runCommand( { serverStatus: 1 } )' MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 2018-03-29T02:21:48.382+0000 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused 2018-03-29T02:21:48.382+0000 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6
知道我們還應該檢查什麼來調試它嗎?
事實證明,最新的 MongoDB 版本中修復了 MongoDB 錯誤。您可以在這張票中找到完整的故事。
我遇到了 c5 實例掛起的問題。它正在執行一個非常輕量級的 Web 工作負載(沒有 mongoDB),我過去常常通過 SSH 連接到它進行維護,它曾經在 1-2 天內掛起,因為它不接受 443 或 SSH 連接上的連接。我不得不從 AWS 控制台重新啟動它,並且可以在日誌中看到一些磁碟問題,並且還在 AWS 論壇上發布但沒有響應。另見下文
https://www.reddit.com/r/aws/comments/7whfhn/new_nitro_based_m5c5_instances_seem_unstable/
建議您嘗試 m4 實例。