云服务器 inode 耗尽排查:磁盘没满却写不进文件

举报
yd_215738027 发表于 2026/11/07 20:30:26 2026/11/07
【摘要】 介绍 Linux 云服务器 inode 耗尽的识别、定位、清理与预防方法。

云服务器 inode 耗尽排查:磁盘没满却写不进文件

有时 df -h 显示还有空间,程序却报 “No space left on device”。这多半是 inode 用光了:小文件太多,每个文件都占一个 inode。

1. 确认是不是 inode 问题

df -i

看 IUse%,接近 100% 就是它。

2. 找出小文件最多的目录

sudo find / -xdev -type f 2>/dev/null | cut -d/ -f2 | sort | uniq -c | sort -nr | head

锁定一级目录后,再往下一层统计,例如:

sudo find /var -xdev -type f 2>/dev/null | cut -d/ -f3 | sort | uniq -c | sort -nr | head

3. 常见元凶

  • PHP 或应用的 session 文件目录
  • 邮件队列:/var/spool/postfix
  • 缓存目录、临时文件 /tmp
  • 程序疯狂写的小日志或上传碎片

4. 安全清理

先看清楚再删,比如删除 7 天前的 session 文件:

sudo find /var/lib/php/sessions -type f -mtime +7 -delete

文件数量极大时,find ... -delete 比 rm * 更稳,不会报参数过长。

5. 防止复发

  • 给缓存和 session 配置定期清理(cron 或 systemd timer)
  • 修复不断产生小文件的程序
  • 新建文件系统时,如果预计小文件很多,可以用 mkfs.ext4 -i 调小每个 inode 对应的字节数

小结

磁盘有空间却写不进,先跑 df -i。定位到小文件最多的目录,确认无用后清理,再从源头控制小文件数量。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。