Linux服务器磁盘告警处理_磁盘扩容与清理

3次阅读

磁盘空间不足需分紧急清理和长期扩容两步处理:先用df、du定位高占用目录并清理日志、缓存等;再用lsof、iotop排查异常写入进程;云盘可在线扩容并扩展分区与文件系统;最后通过logrotate、监控告警和定期巡检预防复发。

Linux服务器磁盘告警处理_磁盘扩容与清理

磁盘空间不足是linux服务器常见问题,触发告警后需快速判断是临时文件积还是存储容量真正见底。处理思路分两步:紧急清理释放空间 + 长期扩容保障稳定。

一、立即排查并清理占用高的目录

先定位“谁吃掉了磁盘”,再针对性清理,避免误删关键数据:

  • df -h 查看各挂载点使用率,确认告警对应分区(如 /、/var、/home)
  • 进入高占用分区,执行 du -sh * | sort -hr | head -10 列出前10大目录
  • 重点检查:/var/log(日志轮转失效或调试日志暴增)、/tmp(残留临时文件)、/var/cache(包管理缓存)、应用日志目录(如 nginxaccess.log、mysql 的 slow.log)
  • 清理示例:
    – 清空过期日志:find /var/log -name “*.log.*” -mtime +30 -delete
    – 清理 yum 缓存:yum clean allcentos/RHEL)或 apt cleanubuntu/debian
    – 安全清空大日志文件:truncate -s 0 /var/log/messages(不删除文件,避免服务重开句柄)

二、识别并终止异常写入进程

某些进程可能因bug持续写入大量日志或临时数据,导致磁盘短时间打满:

  • lsof +L1 查看已删除但仍被进程占用的大文件(常见于未重启服务的日志轮转)
  • iotop -o 实时观察哪些进程在高频写磁盘
  • 结合 ps aux –sort=-%memps aux –sort=-%cpu 辅助判断异常进程
  • 确认无业务影响后,可 kill 对应进程或通知开发修复逻辑(如循环写日志、未关闭文件句柄)

三、在线扩容云盘(以阿里云/腾讯云为例)

若磁盘长期趋近饱和,优先考虑扩容而非反复清理。云服务器支持不停机扩容:

  • 控制台操作:对目标云盘执行“在线扩容”,设置新容量(如从100G扩至200G)
  • 登录服务器,确认设备识别:lsblkfdisk -l 查看是否显示新容量(如 /dev/vda 显示 200G)
  • 扩展分区(MBR主引导记录):
    – 若为单主分区(如 /dev/vda1),用 fdisk /dev/vda 删除并重建分区(起始扇区保持不变,结束扇区用默认值)
    – 执行 partprobe 或重启 udev 刷新分区表
  • 扩展文件系统:
    – ext4:resize2fs /dev/vda1
    – xfs:xfs_growfs /(挂载点路径,非设备名)
  • 验证:df -h 确认可用空间已更新

四、建立预防机制,减少重复告警

运维不是救火队,自动化监控和定期维护能大幅降低突发风险:

  • 配置 logrotate:为自定义日志添加轮转规则(按大小或天数切割、压缩、自动删除旧文件)
  • 部署基础监控:用 zabbixprometheus + node_exporter 设置磁盘使用率阈值(如 >85% 触发企业微信/钉钉告警)
  • 定期巡检脚本示例(加入 crontab 每周执行):
    find /var/log -type f -size +100M -exec ls -lh {} ;
    du -sh /var/cache/* 2>/dev/NULL | sort -hr | head -5
  • 数据库对象存储等有增长规律的服务,提前规划容量,预留至少20%缓冲空间
text=ZqhQzanResources