文档首页> 常见问题> 服务器卡但不至于重启时先采证据

服务器卡但不至于重启时先采证据

发布时间:2026-09-23 13:39        更新时间:2026-09-24 07:43
机器变卡的时候,第一反应别是重启——重启把现场证据一起清掉了,下次再卡还是两眼一抹黑。趁系统还能响应,先把证据抓下来。 准备条件 确认 SSH 还能登进去,很卡时多等几秒;另开一个终端专门跑采集命令,采证阶段只看不动,别顺手改任何配置。确认工具可用: ``` which iostat pidstat || yum install -y sysstat ``` Ubuntu 把 yum 换成 apt install -y sysstat。输出统一存文件,方便事后对照。 第一步:抓 CPU 与内存 ``` top -b -n 1 | head -30 vmstat 1 5 ``` top 看谁在吃 CPU;load average 三个数与核数对照,超过核数就是排队。内存看 free -h 的 available 一列,低于一成就是真缺;buff/cache 偏高不算问题。vmstat 的 si/so 两列持续非零,说明内存在 swap,多半是不足或泄漏。 第二步:抓磁盘 IO ``` iostat -x 1 5 ``` 关注 %util 接近 100%、await 明显偏大的那块盘。云盘的 IO 上限与规格相关,长期贴顶就该升配。定位到盘之后找进程: ``` pidstat -d 1 5 ``` 哪条命令在狂写盘,一目了然。常见的写盘大户是日志、备份脚本和数据库临时表,对上号就能对症处理。 第三步:抓网络与连接数 ``` ss -s sar -n DEV 1 5 ``` 连接状态分布也值得看:TIME_WAIT 异常多说明连接没有复用。连接数异常暴涨常伴随卡顿,ss -s 的汇总一行就能看出总量。对照监控看是入流量还是出流量暴涨,方向不同,处理方式也不同。 留档与验证 把输出重定向到一个文件: ``` mkdir -p /var/log/diag && { top -b -n 1; vmstat 1 5; iostat -x 1 5; } > /var/log/diag/snap-$(date +%F-%H%M).txt 2>&1 ``` 采证的节奏有讲究:一套快照约一分钟,连采三套、中间隔五分钟,能看出问题持续还是突发。采完证据再决定是否重启;重启后对比新快照,问题是否复现就有了依据。 常见报错与处理 提示 command not found:装 sysstat 即可。sar 首次运行无数据,等一个采样周期再看。vmstat 与 iostat 别看混:前者看内存与 CPU 队列,后者看磁盘。本机指标都正常还卡,往下游查:数据库慢查询、外部接口限速、域名解析慢都是常客。卡到 SSH 都进不去,说明已超出取证窗口,走控制台强制重启,并把这次教训补进预案。