MongoDB:数据分区上的磁盘 I/O 百分比利用率已经消失

Posted

技术标签:

【中文标题】MongoDB:数据分区上的磁盘 I/O 百分比利用率已经消失【英文标题】:MongoDB: Disk I/O % utilization on Data Partition has gone 【发布时间】:2019-11-28 20:56:42 【问题描述】:

上次我从 MongoDB Atlas 收到警报:

Disk I/O % utilization on Data Partition has gone above 70 on nvme2n1 

但我不知道如何本地化/查询/索引/部分代码/有问题的集合。

我可以通过什么方式进行分析以找出问题的根本原因?

【问题讨论】:

【参考方案1】:

没有回答,只是看到很多人面临类似的问题。 在我的情况下,根本原因是:我们收集了包含数据数组的大量文档(实际上 - 带有一些元数据的坐标列表),并像我们拥有的坐标一样多次更新它(添加新坐标时)。 + 一些额外的操作。

据我所知,MongoDB 不能只获取文档的一部分,它会获取完整的文档,当我们获取许多不同的大文档时,它们不适合 MongoDB 内存缓存,并且每次访问硬盘时,都会导致到这个问题。 所以,我们只是将这份文件分成几份,并解决了这个问题。虽然我们需要经常访问以更新/添加这些数据,但我们将其保存到不同的文档中,最后,在处理完成后,我们将所有这些文档收集到一个大文档中,用于“历史检查”目的。

【讨论】:

以上是关于MongoDB:数据分区上的磁盘 I/O 百分比利用率已经消失的主要内容,如果未能解决你的问题,请参考以下文章

利用Oracle分区表来减少磁盘I/O冲突

Cassandra 节点上的高磁盘 I/O

Linux 磁盘I/O是怎么工作的(下)

11 磁盘存储和系统分区 管理 1 GTP和MBR分区管理

分区表

服务器磁盘管理(分区和挂载)