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

CentOS 7 GCP虚拟机根目录磁盘占用凌晨飙升排查求助

根目录磁盘空间周期性飙升排查方案(CentOS 7 + GCP)

当前磁盘挂载信息:

Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                        63G     0   63G   0% /dev
tmpfs                           63G     0   63G   0% /dev/shm
tmpfs                           63G  321M   63G   1% /run
tmpfs                           63G     0   63G   0% /sys/fs/cgroup
/dev/sda2                       50G   43G  7.7G  85% /
/dev/sda1                      200M   12M  189M   6% /boot/efi
/dev/mapper/data_vg1-data_lv1   99G   41G   53G  44% /app
10.10.10.10:/fileshare         207G   85G  113G  43% /mnt/fileshare
tmpfs                           13G     0   13G   0% /run/user/1006
tmpfs                           13G     0   13G   0% /run/user/1031

针对每日UTC凌晨1点根分区使用率飙升后快速回落的问题,可按以下步骤排查:

一、实时抓现场(优先操作)

问题具有周期性,直接在触发时段监控是最有效的方式:

  • 提前设置定时监控脚本,UTC凌晨0:55启动:
    # 创建监控脚本
    cat > /tmp/disk_monitor.sh << EOF
    #!/bin/bash
    LOG_FILE="/tmp/disk_usage_\$(date +%Y%m%d).log"
    echo "=== 监控启动时间: \$(date) ===" >> \$LOG_FILE
    # 监控到01:30结束
    while [ \$(date +%H%M) -lt 0130 ]; do
        # 记录根分区使用情况
        df -h / >> \$LOG_FILE
        # 列出根目录下前20大文件/目录
        du -h --max-depth=1 / | sort -hr >> \$LOG_FILE
        # 记录被删除但仍被进程占用的文件(这类文件会占用空间但不可见)
        lsof | grep deleted >> \$LOG_FILE
        echo "---" >> \$LOG_FILE
        sleep 10
    done
    EOF
    chmod +x /tmp/disk_monitor.sh
    # 添加到定时任务
    echo "55 0 * * * root /tmp/disk_monitor.sh" >> /etc/crontab
    
  • 凌晨时段手动实时追踪:
    • 实时查看磁盘变化:watch -n 5 df -h /
    • 实时追踪大文件生成:watch -n 5 du -h --max-depth=2 / | sort -hr | head -20
    • 监控文件系统创建/删除行为(排除非根分区目录):inotifywait -m -r -e create,delete,modify / --exclude='/dev|/proc|/sys|/mnt|/app'

二、事后溯源(错过现场时用)

从系统遗留痕迹和日志排查:

  • 检查定时任务:
    • 系统级任务:cat /etc/crontab、ls -la /etc/cron.d/、ls -la /etc/cron.hourly/ /etc/cron.daily/
    • 用户级任务:for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done
  • 排查进程占用的已删除文件:
    # 列出已删除但未释放空间的文件及对应PID
    lsof -nP | grep '(deleted)' | awk '{print $2, $7, $9}'
    # 查看对应进程详情
    ps aux | grep <PID>
    
  • 检查临时目录与日志:
    • 临时文件:ls -lahtr /tmp /var/tmp(按时间排序查看最近修改的文件)
    • 日志目录:du -h /var/log | sort -hr(排查是否有日志轮转异常)
  • 查看系统日志时段记录:
    # 查看凌晨0:50-1:30的系统日志
    journalctl --since "1 day ago 00:50:00" --until "1 day ago 01:30:00" | grep -i "disk\|write\|delete"
    

三、GCP特定排查方向

针对怀疑的GCP相关操作,重点检查:

  • GCP Agent行为:查看相关服务日志,排查是否有凌晨时段的异常操作:
    journalctl -u google-* --since "1 day ago" | grep -i "disk\|cache\|sync"
    
  • 快照/备份任务:检查GCP控制台是否有凌晨1点左右的磁盘快照任务,部分工具可能临时生成本地镜像文件(虽罕见但需确认)
  • 日志导出配置:排查是否存在Stackdriver Agent配置错误,导致日志大量写入本地而非云端
  • 自动化操作:检查是否有GCP相关的自动化脚本(如实例健康检查、磁盘检测)在凌晨时段触发

四、辅助工具推荐

  • ncdu:交互式磁盘占用分析工具(安装:yum install ncdu),执行ncdu /可直观浏览目录大小
  • iotop:监控磁盘IO读写进程(安装:yum install iotop),凌晨时段执行iotop -oP查看高IO进程
  • sar:查看历史磁盘数据(需先安装sysstat:yum install sysstat),执行sar -d -p -s 01:00:00 -e 01:30:00查看时段磁盘使用情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:01:08