
告警
公司有个3.2.7版本的mongo复制集,最近几天频繁告警内存过高。
服务器配置16C+64G内存。mongo备节点内存使用到55G,触发告警。
以下内容基于3.2.7版本,3.2.7版本已经太老,很多后来的命令和配置,3.2.7都没有。
排查
排查mongo配置
主要是检查cacheSizeGB
wiredTiger:engineConfig:
cacheSizeGB: 20
MongoDB 3.2 及以后,默认使用 WiredTiger 存储引擎,可通过 cacheSizeGB 选项配置 WiredTiger 引擎使用内存的上限,一般建议配置在系统可用内存的一班左右。
默认值是(RAM – 1GB) / 2。出发点是防止系统OOM kill。因为这里的配置只是wiredTiger的内存cache限额,并不是mongo的全部使用内存限额,整个mongo进程的内存占用要比这个值大,所以cacheSizeGB万万不可设置超过RAM的60%。
我们这里配置到了20G。但是实际运行中发现,在并发查询很高的情况下,wt的cacheSize还是会超过这个配置一点点。
查看mongo实例的内存使用情况
db.serverStatus().wiredTiger.cache返回结果中 bytes currently in the cache 后的值为缓存数据的大小
..."bytes currently in the cache" : 21483838298,
...
已经用满了,这种情况可以加一下内存了。但是内存太贵,业务也没有那么高的性能要求,保障不宕机是更有性价比的方案。
既然cache只用了20G,
<

1023

被折叠的 条评论
为什么被折叠?



