You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2实例A启动时健康检查失败且存储不足问题排查求助

EC2实例启动时存储不足(健康检查失败)的进程排查与解决方案

已知场景:EC2实例A启动时健康检查失败,系统日志提示Out of Storage,已完成卷扩容、跨实例挂载验证、AMI创建验证,确认卷本身容量无问题,锁定为启动时的进程导致存储耗尽。

排查与修复步骤:

1. 挂载故障卷到临时实例分析日志

将实例A的根卷挂载到临时实例的额外挂载点(如/mnt/troubleshoot),重点检查启动相关日志:

  • 查看系统日志:cat /mnt/troubleshoot/var/log/messages | grep -i "out of space\|disk full"(CentOS/RHEL)或cat /mnt/troubleshoot/var/log/syslog | grep -i "out of space\|disk full"(Ubuntu/Debian),定位启动时触发存储耗尽的进程
  • 检查云初始化日志:cat /mnt/troubleshoot/var/log/cloud-init.log,排查云初始化阶段是否有异常写入行为
  • 查看审计日志:cat /mnt/troubleshoot/var/log/audit/audit.log | grep -i write,筛选启动时的大量写入操作

2. 排查开机自启进程/服务

列出所有开机自启的服务,定位可能异常的进程:

  • Systemd系统:systemctl list-unit-files --type=service --state=enabled --root=/mnt/troubleshoot
  • SysVinit系统:chkconfig --root=/mnt/troubleshoot --list
    重点关注:
  • 日志服务(rsyslog、fluentd等):是否未配置日志轮转,导致日志无限增长
  • 备份服务:是否开机自动执行本地全量备份,瞬间占用大量空间
  • 应用服务:是否启动时生成大量临时文件、缓存且未清理
  • 监控代理:是否异常采集本地数据并大量存储

3. 检查临时文件与日志轮转配置

  • 查看临时目录占用:du -sh /mnt/troubleshoot/tmp /mnt/troubleshoot/var/tmp,确认是否有启动时生成的大文件
  • 验证日志轮转配置:
    • 检查/mnt/troubleshoot/etc/logrotate.conf和/mnt/troubleshoot/etc/logrotate.d/下的规则,确认是否设置了日志大小限制、保留数量
    • 测试轮转执行:logrotate -v --root=/mnt/troubleshoot /etc/logrotate.conf,排查是否有配置错误导致轮转失败

4. 排查隐藏的磁盘占用

  • 查找已删除但未释放的文件:lsof +D /mnt/troubleshoot | grep deleted,这类文件虽已删除,但进程未关闭时仍会占用磁盘空间
  • 检查挂载点覆盖问题:对比du -sh /mnt/troubleshoot/var和df -h /mnt/troubleshoot/var的结果,若差异过大,说明原目录文件被新挂载的磁盘覆盖,实际占用未被统计

5. 修复后验证

  • 针对排查出的问题修改配置:如调整日志轮转规则、禁用不必要的开机服务、清理冗余临时文件
  • 将修复后的卷重新挂载回实例A,启动实例后检查健康状态和磁盘使用情况
  • 添加定期清理任务(如通过cron执行rm -rf /tmp/*或触发日志轮转),防止问题复发

内容的提问来源于stack exchange,提问作者Aryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 21:22:43