您好,登錄后才能下訂單哦!
MongoDB版本:3.2.6
cacheSizeGB: 32
引擎:WiredTiger
架構:副本集
業務請求MongoDB出現超時現象。
查看MongoDB日志,存在大量的慢更新語句,通過netdata查看服務器監控,排除io問題,發現單核CPU持續出現100%
通過pidstat查看MongoDB進程的CPU使用情況
[root@127-0-0-1 ~]# pidstat -t -p ALL |grep mongod
懷疑mongodb自身刷臟頁,通過perf查看mongod進程
[root@127-0-0-1 ~]# perf top -p pid
再選擇 Annotate,找出熱點(可以精確到 CPU 指令):(忘記截圖,隨便截一個)
為了保證線上業務的可用和穩定性,先切換primary為業務提供正常的服務。
解決方法:
1、將版本升級到3.2.10,官方修復了該問題
2、eviction 參數調優:降低eviction_target 或 eviction_dirty_target,讓evict 盡早將數據從 wiredtiger 的 cache 刷到操作系統的 page cache,以便提早刷盤。
db.runCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: "eviction_dirty_target=5,eviction_target=80"})
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。