Linux系统的ECS实例磁盘负载较高问题的排查及解决方案

axin 2025-04-02 5人围观 ,发现0个评论 火山引擎云服务器云服务器云服务器教程

👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>


本文主要介绍如何排查和解决Linux实例在使用过程中,由于磁盘负载(使用率)较高,在创建文件或者应用时可能会出现No space left on device错误问题。

操作步骤

查看当前磁盘使用率的使用情况

  1. 登录目标实例,操作详情可参考登录Linux实例。

  1. 执行如下命令,查看当前磁盘使用率情况。

df -h
回显示例

  1. 逐级查看各目录占用磁盘详情。

本文以从根目录/开始查看为例。
    1. 执行如下命令,进入根目录。

cd /
    1. 执行如下命令,查看当前目录下占用磁盘最多的文件夹。

du -sh *
回显示例

    1. 执行如下命令,进入usr目录。

本文以usr目录存在大文件为例,请调整为实际目录路径。
cd usr/
    1. 执行如下命令,查看当前目录下占用磁盘最多的文件夹。

du -sh *
回显示例

    1. 重复c、d两步,直到定位到大型文件后,确定目标文件是否为系统或业务使用的文件。

      • 文件不可清理

若目标大文件为业务或系统必要文件,不可清理,您可以升级您的实例配置、扩容云盘或变更云盘规格,避免程序受限于云盘性能无法正常运行,操作详情可查看修改实例规格、扩容云盘、变更云盘规格。
      • 文件可清理

若目标大文件为非必要文件,可以清理,您可以执行如下命令,强制删除目标文件,清理磁盘空间。
注意
  • 删除操作不可逆,请谨慎操作。

  • 请将命令中/usr/local/test_large_file替换为目标文件实际路径。

rm -rf /usr/local/test_large_file

查看当前磁盘Inode使用率的使用情况

  1. 登录目标实例,操作详情可参考登录Linux实例。

  1. 执行如下命令,查看Inode使用情况。

df -i
回显示例

  1. 若Inode使用率达到或者接近100%,则需要清理Inode占用量高的文件或者目录。

    1. 执行如下命令,确定根目录/下的文件数量。

cd /for i in ./*; do echo $i; find $i | wc -l; done
回显示例

    1. 执行如下命令,进入文件数量最多的目录。

说明
  • 文件数越多说明Inode占用越高。

  • 本文以usr目录中文件数量最多为例。

cd usr/
    1. 执行如下命令,确定当前目录下文件数量最多的目录。

for i in ./*; do echo $i; find $i | wc -l; done
回显示例

    1. 重复b、c两步,逐层进入Inode占用最高(即文件数量最多)的目录,直到定位到占用过高空间的文件、目录。

      • 不可清理

若目标文件、目录为业务或系统必要文件,不可清理,您可以扩容云盘或变更云盘规格,避免程序受限于云盘性能无法正常运行,操作详情可查看扩容云盘、变更云盘规格。
      • 可清理

若目标文件、目录为非必要文件,可以清理,您可以执行如下命令,强制删除目标文件,清理磁盘空间。
注意
  • 删除操作不可逆,请谨慎操作。

  • 请将命令中/usr/local/test_large_file替换为目标文件实际路径。

rm -rf /usr/local/test_large_file


请关注微信公众号
微信二维码
不容错过
Powered By TOPYUN 云产品资讯