1. 问题现象与初步诊断
上周五凌晨3点,监控系统突然报警提示生产环境服务器负载飙升到26+,IO等待高达94.7%。通过SSH连上这台阿里云Ubuntu 20.04服务器后,首先用三板斧命令快速抓取系统状态:
bash复制# 实时系统负载监控
top -d 1
# 内存使用情况
free -h
# 综合性能指标
vmstat 1
从top输出中发现了几个关键线索:
- 系统负载平均值(load average)高达26.14,远超CPU核心数(2核)
- CPU使用率中wa(I/O等待)占比94.7%,说明系统卡在磁盘I/O上
- 内存几乎耗尽(407MB总内存中已用350MB)
- 可疑进程apt-check占用7.3%内存和3.9%CPU
vmstat的输出更触目惊心:
- bi(块设备读取)指标持续在140-150MB/s波动
- CPU空闲(id)时间始终为0%,完全被I/O等待(wa)占满
经验提示:当wa持续>30%就说明存在严重I/O瓶颈,而这里94.7%已经是灾难级别
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 深度排查与根因定位
2.1 进程级I/O分析
使用pidstat定位具体I/O来源:
bash复制pidstat -d 1
输出显示apt-check进程的kB_rd/s(读取速率)高达84MB/s,是其他进程总和的5倍多。结合进程名判断,这是Ubuntu的自动更新检查服务。
2.2 系统服务检查
排查相关服务状态:
bash复制systemctl list-timers --all
发现两个关键定时器在运行:
- apt-daily.timer:每天触发apt更新
- apt-daily-upgrade.timer:每天触发自动升级
查看服务日志确认:
bash复制journalctl -u apt-daily.service -n 50
日志显示服务正在执行"apt-get update"和"apt-get upgrade"操作。
2.3 资源瓶颈验证
通过free命令发现内存仅剩6.4MB,导致系统频繁触发kswapd内存回收:
bash复制 total used free
