更新时间:2022-05-09 GMT+08:00
分享

磁盘使用率高问题排查

使用文档数据库服务时,如果实例的磁盘使用率过高或完全被使用,将会导致实例不可⽤。

本章节帮助您分析解决DDS实例磁盘使用率高的问题。

查看磁盘使用情况

DDS目前提供如下两种方法用于查看实例磁盘的使用情况。

  1. 通过DDS控制台查看磁盘使用情况。

    您可以登录DDS控制台,单击目标实例名称,进入“基本信息”页面,在“存储空间”区域可以查看到当前实例的磁盘使用情况。

    图1 查看磁盘使用情况
  2. 通过查看监控指标(磁盘利用率和磁盘使用量)判断实例磁盘的使用情况。

    如何查看监控指标请参见查看监控指标

    图2 查看磁盘使用情况

解决方案

  1. 对于集群实例,可能是因为选择和设置的分片不合理导致数据分布不均衡,从而引起磁盘空间使用率高的情况。

    此时,可以对数据库集合进行合适的分片,具体操作请参见设置数据分片以充分利用分片性能

  2. 随着业务数据的增加,原来申请的数据库磁盘容量不足。此时建议扩容磁盘空间,确保磁盘空间足够。

    如果原有实例规格的磁盘已是最大的,请先升级规格。

  3. 存在大量过期的数据文件占用磁盘空间,此时需要及时处理过期数据文件。例如:如果整个库不需要了,则可以执行dropDatabase命令进行删除,从而快速释放磁盘空间。
  4. 后台数据处理机制原因。

    因为无论是写入、更新或删除等操作(包括索引插入和删除等操作),在后台实际上都会转成写入。因为底层的存储引擎(WiredTiger和RocksDB),采用都是appendOnly机制。只有当存储引擎内部数据状态满足一定条件后,会触发内部的compaction操作,进行数据压缩,进而释放磁盘空间。

    所以有时候会发现,磁盘占用量比实际数据量大,实际上这只是“看起来大”,并不会影响用户的使用。因为内部有些数据压缩,是延时操作,没有立即执行。随着数据的继续写入,会触发后台执行数据压缩清理空间。

分享:

    相关文档

    相关产品

close