温馨提示×

为什么CentOS空间不足

小樊
50
2026-08-30 06:32:59
栏目: 云计算

CentOS 空间不足通常是由磁盘被占满或分区不合理引起的,常见原因和排查方法如下:


一、常见原因

1. 日志文件过大

  • /var/log 下的日志(如 messagessecurecron
  • 未开启日志轮转(logrotate)
  • 服务异常导致日志疯狂写入

2. 软件包缓存

  • yum/dnf 缓存:
    /var/cache/yum
    

3. 大文件或未被清理的文件

  • 备份文件、临时文件
  • 程序生成的大文件(如数据库导出、邮件队列)

4. Docker / K8s 占用(常见)

  • 镜像、容器、卷占满磁盘
  • /var/lib/docker

5. 磁盘未扩容或未合理分区

  • 磁盘实际有空间,但分区没用上
  • LVM 未扩展

6. 删除文件但仍被进程占用

  • 文件已 rm,但进程未释放
  • df 显示满,du 不一致

7. inode 用满

  • 小文件太多(如邮件、缓存、session)

二、快速排查步骤(推荐顺序)

1️⃣ 查看磁盘使用情况

df -h

重点看:

  • /(根分区)
  • /var
  • /home

2️⃣ 查看是哪个目录占空间

du -h --max-depth=1 / | sort -hr

常用:

du -sh /var/*

3️⃣ 查找大文件

find / -type f -size +500M 2>/dev/null

4️⃣ 检查已删除但未释放的文件

lsof | grep deleted

如找到,可重启对应进程或:

kill -9 PID

5️⃣ 清理 yum 缓存

yum clean all
# 或
dnf clean all

6️⃣ 清理日志

查看:

journalctl --disk-usage

清理:

journalctl --vacuum-size=500M

或手动:

truncate -s 0 /var/log/messages

7️⃣ Docker 占用排查

docker system df
docker system prune -a

8️⃣ inode 是否用满

df -i

三、常见解决方案总结

场景 解决方式
日志太大 清理或配置 logrotate
Docker 占满 docker system prune
删除文件不释放 重启进程
磁盘未扩容 LVM 扩容
inode 用完 删除小文件

四、建议的预防措施 ✅

  • 开启并配置 logrotate
  • 定期清理 /var/cache
  • Docker 环境单独挂载磁盘
  • 监控磁盘(df -h + 告警)
  • 使用 LVM 方便扩容

如果你愿意,可以把下面命令的输出贴出来,我可以直接帮你分析是哪一块占满了空间

df -h
lsblk
du -h --max-depth=1 /

0