Mongodb
‘Ftd_CF噸dCftdcserverStatus 非常慢” - MongoDB 4.0.4
我在 mongod.log 中看到非常頻繁的此類消息,並且沒有給出伺服器狀態非常慢的確切原因。看起來 ftdc 記錄了更多資訊,但解釋 ftdc 日誌是一種非常繁瑣的方法,而且不是人類可讀的格式。
由於這個問題,mongo 守護程序會突然停止工作並變得陳舊,從而導致複製問題和失去仲裁,從而導致數據庫無法訪問。
錯誤日誌:
2021-04-21T04:56:39.729+0000 I COMMAND [ftdc] serverStatus was very slow: { after basic: 2165, after asserts: 3087, after backgroundFlushing: 8785, after connections: 11612, after dur: 12922, after extra_info: 19620, after globalLock: 27972, after locks: 41890, after logicalSessionRecordCache: 51379, after network: 55947, after opLatencies: 62013, after opcounters: 67473, after opcountersRepl: 70586, after repl: 74168, after security: 78481, after storageEngine: 78629, after tcmalloc: 78629, after transactions: 78629, after transportSecurity: 78629, after wiredTiger: 78813, at end: 79004 }
問題 :
如何進一步排除故障?啟用詳細 5 日誌確實會提供更多資訊嗎?真的是記憶體問題嗎?避免這個問題的下一步是什麼?
這意味著,您的伺服器超載。
serverStatus
它甚至不能毫不拖延地回復命令。有些人通過向他們的伺服器添加更多硬體來解決這個問題。但是,我認為首先你應該檢查你的查詢和索引,也許你可以優化它們。
查看您的查詢:
db.currentOp()
您應該開始分析,啟用慢查詢日誌以找出需要時間和多少時間。
要分析“一切”,請使用:
db.setProfilingLevel(2)
要“僅”分析那些耗時超過 20 毫秒的操作:
db.setProfilingLevel(1, { slowms: 20 })
這是文件。