找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 23735|回复: 0

服务器目录爆满、inode耗尽运维解决

[复制链接]

1

主题

0

回帖

5

积分

新手上路

积分
5
发表于 2026-8-12 08:39:33 | 显示全部楼层 |阅读模式
当服务器出现目录爆满或inode耗尽时,会导致系统无法写入新数据、服务异常甚至崩溃。以下是详细的排查和解决方法:




一、目录空间爆满(磁盘使用率100%)
1. 定位大文件/目录

  • 查看磁盘使用情况

   
  1. df -h  # 查看各分区使用率
复制代码

  • 定位具体目录

   
  1. du -h --max-depth=1 /  # 从根目录开始,逐级查找大目录
  2.      # 或使用更高效的工具(如ncdu)
  3.      ncdu /
复制代码

2. 清理无用文件

  • 日志文件

     检查
  1. /var/log/
复制代码
下的日志(如
  1. messages
复制代码
,
  1. nginx/access.log
复制代码
),清理或轮转:
   
  1. # 清理旧日志(示例)
  2.      rm -f /var/log/old_log_*.log
  3.      # 或使用logrotate配置自动轮转
复制代码

  • 临时文件

     清理
  1. /tmp/
复制代码
、缓存目录(如
  1. /var/cache/
复制代码
)或应用生成的临时文件。

  • 核心转储文件

     删除
  1. /var/core/
复制代码
或应用目录下的
  1. core.*
复制代码
文件。

3. 扩展存储(可选)

  • 如果清理后空间仍不足,考虑:
  • 扩容磁盘或分区。
  • 挂载新磁盘到特定目录(如
    1. /data
    复制代码
    )。





二、inode耗尽(No space left on device)
1. 检查inode使用情况
  
  1. df -i  # 查看各分区inode使用率
复制代码

  • 若某分区inode使用率100%,需清理小文件。


2. 定位inode占用高的目录
  
  1. # 遍历目录统计文件数量(示例)
  2.    for i in /*; do echo $i; find $i | wc -l; done
  3.    # 或使用find命令快速定位
  4.    find /path/to/dir -xdev -type f | cut -d "/" -f 2- | sort | uniq -c | sort -nr
复制代码

3. 清理小文件

  • 应用临时文件

     检查应用是否生成大量小文件(如缓存、会话文件),清理后重启服务。

  • 邮件/队列文件

     清理
  1. /var/spool/
复制代码
下的邮件或任务队列。

  • 容器/虚拟化文件

     若使用Docker/KVM,清理无用镜像、容器或虚拟磁盘。

4. 预防措施

  • 调整文件存储策略

     避免在单个目录存放过多文件,可按日期/哈希分目录存储。

  • 监控inode使用

     通过
  1. df -i
复制代码
或Prometheus等工具监控,设置告警。




三、通用优化建议

  • 日志管理
  • 配置
    1. logrotate
    复制代码
    定期压缩、轮转日志。
  • 禁用不必要的调试日志。
  • 自动化清理
  • 编写脚本定期清理临时文件(如通过
    1. cron
    复制代码
    执行)。
  • 文件系统选择
  • 若业务产生大量小文件,考虑使用XFS(比ext4支持更多inode)。
  • 监控告警
  • 使用Zabbix、Prometheus等监控磁盘和inode使用率,触发告警及时处理。





四、紧急恢复

  • 快速释放inode

  删除大量小文件(如
  1. find /path -type f -name "*.tmp" -delete
复制代码
)。

  • 挂载新分区

  若当前分区无法扩展,可挂载新磁盘到高负载目录(如
  1. /var/lib/docker
复制代码
)。




总结步骤

  • 诊断:通过
    1. df -h
    复制代码
    1. df -i
    复制代码
    确认是空间还是inode问题。
  • 定位:使用
    1. du
    复制代码
    1. find
    复制代码
    找到占用资源的大文件/目录。
  • 清理:优先删除无用文件(日志、临时文件、缓存)。
  • 预防:优化存储策略、配置监控和自动化清理。


通过以上步骤,可快速恢复服务器正常运行并避免问题复发。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|五云论坛 ( 黔ICP备2022001370号-1|贵公网安备52032102000798号 )

GMT+8, 2026-9-12 17:19 , Processed in 0.086510 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表