更新时间:2024-04-29 GMT+08:00
WiredTiger引擎脏数据的缓存过高告警恢复手段
问题出现原因
WiredTiger引擎脏数据的缓存过高,主要有以下两种场景:
- 将MongoDB的运行参数enableMajorityReadConcern设置为true后,业务写入速率过快,导致从节点无法及时同步主节点oplog。
- 将MongoDB的运行参数enableMajorityReadConcern设置为false后,因为CPU和内存规格过小,无法承受当前业务上的写入速率。
问题排查
解决方案
排查当前MongoDB的运行参数,登录控制台 -> 单击实例名称 -> 参数修改,可以查看当前enableMajorityReadConcern的设置值。根据情况区分:
- enableMajorityReadConcern为false:登录控制台 -> 云监控, 查看“主备时延”、“WiredTiger引擎脏数据缓存”、“WiredTiger脏数据的缓存百分比”、“CPU”、“运行内存”这些指标。如果“WiredTiger脏数据的缓存百分比”指标超过20%且持续上涨,“CPU”、“运行内存”超过90%,请及时进行客户端写入限流,同时评估是否需要进行规格升级。
- enableMajorityReadConcern为true。
- 如果业务上没有强制读一致性的场景,建议联系华为工程师将参数设置为false。
- 如果业务上有强制读一致性的场景,且“WiredTiger脏数据的缓存百分比”指标超过20%并且持续上涨,“CPU”、“运行内存”超过90%,请及时进行客户端写入限流,同时评估是否需要进行规格升级。
父主题: 监控和告警