Linux云服务器磁盘空间告警排查:五步定位并清理大文件
【摘要】 背景云服务器运行一段时间后,监控经常会提示“磁盘使用率超过85%”。如果不及时处理,日志无法写入、数据库启动失败、应用直接宕机都可能发生。本文总结一套在华为云ECS(Linux系统)上通用的五步排查流程,不需要任何付费组件,登录服务器即可完成。 第一步:确认哪个分区满了先用df命令查看各分区使用情况,重点关注Use%最高的挂载点。很多时候满的是根分区,也可能是单独挂载的数据盘。df -h ...
背景
云服务器运行一段时间后,监控经常会提示“磁盘使用率超过85%”。如果不及时处理,日志无法写入、数据库启动失败、应用直接宕机都可能发生。本文总结一套在华为云ECS(Linux系统)上通用的五步排查流程,不需要任何付费组件,登录服务器即可完成。
第一步:确认哪个分区满了
先用df命令查看各分区使用情况,重点关注Use%最高的挂载点。很多时候满的是根分区,也可能是单独挂载的数据盘。
df -h
第二步:逐层定位大目录
使用du命令从根目录开始逐层向下统计,每次只看一层,速度快且结果清晰:
du -h --max-depth=1 / 2>/dev/null | sort -hr | head -n 10
找到最大的目录后,再进入该目录重复执行同样命令,通常三到四层就能锁定问题来源。常见元凶是日志目录、临时目录、用户目录以及容器数据目录。
第三步:查找超大文件
若目录内文件很多,可以直接按大小查找:
find / -type f -size +500M 2>/dev/null
该命令列出所有大于500MB的文件,便于判断哪些是过期备份、历史日志或core dump文件。
第四步:安全清理
清理前务必确认文件用途,建议遵循以下原则:
- 日志文件不要直接删除正在写入的文件,应使用清空方式,例如执行 > /var/log/app.log;
- 系统日志可执行 journalctl --vacuum-time=7d 只保留最近7天;
- 软件包缓存可使用 yum clean all 或 apt clean;
- Docker环境执行 docker system prune 前请确认没有需要保留的停止容器。
第五步:处理删了文件空间不释放
有时删除大文件后df显示空间依旧没变,这是因为文件仍被进程占用。执行下面的命令找到占用进程,重启对应服务,空间就会被释放:
lsof | grep deleted
预防建议
- 为日志配置logrotate,按天切割并限制保留份数;
- 在云监控中为磁盘使用率设置告警阈值,提前通知;
- 数据盘与系统盘分开,业务数据不要写入系统盘;
- 定期对重要数据创建快照,再清理历史文件。
总结
磁盘告警排查的核心思路是先定位分区,再逐层缩小范围,最后安全清理并预防。掌握df、du、find、lsof这四个命令,就能处理绝大多数磁盘空间问题。希望这篇小技巧对使用华为云ECS的朋友有所帮助,也欢迎在评论区交流你的排查经验。
。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)