开发者社区> 问答> 正文

MongoDB 磁盘 IO 问题常见原因和优化策略有哪些?

MongoDB 磁盘 IO 问题常见原因和优化策略有哪些?

展开
收起
游客4skzfvnrxrzbi 2022-01-04 11:38:20 953 0
1 条回答
写回答
取消 提交回答
  • 对于云数据库 MongoDB 来说,底层的磁盘硬件性能对用户透明,完全交由云 厂商负责,用户只需要核心关注业务的正确使用 MongoDB,以及配置合适的 内存和 IOPS 上限。 通常来说,MongoDB 的 IO问题与内存的 CacheSize 大小息息相关。CacheSize 越大,表示能够缓存的热数据越大,那么系统需要的磁盘 IO 量也就越低,出现 IO 瓶颈的概率越低;反之,CacheSize 越小,表示能否缓存的热数据越少,系 统刷脏也更频繁,实例出现 IO 压力的概率也就越大。 可以通过 mongostat 或者阿里云数据库自治服务 DAS 实时查看当前的 cache dirty,目前阿里云数据库 MongoDB 暂不支持 cache dirty 历史情况查看。如果 出现 dirty>20%,并一直持续,说明内存淘汰压力很大,用户的请求线程会阻塞 参与 page 淘汰,请求延时就会增加,这时可以考虑"扩大内存"或者"扩大 IOPS"。 更多 mongostat 的使用方式可以参考: https://docs.mongodb.com/v4.2/reference/program/mongostat/ 还有一些与磁盘 IO 相关的参数和配置,比如 MongoDB Journal 和运行日志刷 盘,WriteConcern 设置,分片集群的 MoveChunk 等,这些因素我们建议用户 根据实际业务需求情况设置即可,一般来说,不必为了尽可能地提高 IO 能力 刻意修改。

    image.png

    关于更多 Journal 内容可参考: https://docs.mongodb.com/manual/core/journaling/ 关于更多 WriteConcern 内容可参考: https://docs.mongodb.com/manual/reference/write-concern/ 对于阿里云 MongoDB 来说,我们更推荐配置好合适的实例规格的同时,重点 关注 Index 的优化和部分应用系统的写入优化。

    资源来源于《阿里云数据库运维实战问题改》

    https://developer.aliyun.com/topic/download?spm=a2c6h.20345107.J_6399686890.1.2e1e17dbzKUX5r&id=8198

    2022-01-04 17:07:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
MongoDB多数据中心的方案选型之路 立即下载
多IO线程优化版 立即下载