章节摘要:嫌疑犯只有四类——CPU、内存、存储 IO、网络。本章给每一类建立"作案手法档案":典型症状、取证命令、定罪证据,最后用 USE 方法把四类排查串成一棵决策树。读完本章,面对"系统慢"这类模糊报案,你有一套确定顺序的排查动作。
排查顺序本身就是效率:先排除便宜的,再查昂贵的。
CPU 饱和的两种形态与对应的采样证据。
RSS、缺页、换页、OOM 四级证据链条。
iowait 的误读、队列深度与 IO 尺寸的定罪逻辑。
重传率、收发缓冲区、内核丢包点。
把四类排查固化成动作序列。
4.1 CPU ── 4.2 内存 ── 4.3 存储 ── 4.4 网络 (四类嫌疑犯档案) \ | / \ | / 4.5 决策树:顺序与纪律
四类资源各有专属证据形态:CPU 的关键区分是 on-CPU 与 off-CPU,内存的关键是斜率与差值(泄漏看单调增长、碎片看 arena 回落)、存储的关键是队列深度而非 iowait、网络的关键是分段计时与丢弃计数。USE 方法把这些单点检查统一成"每资源问利用率、饱和度、错误"的三问框架,排查决策树则把三问串成路径。速查:
# 一轮 USE 扫描, 五类资源各拿一个数 uptime && vmstat 1 3 && free -m && iostat -x 1 3 \ && nstat -az | egrep 'Drop|Retrans' && ss -s
CPU 一节证明"时间在等待"后,案件移交给对应资源节:off-CPU 栈顶在 futex 由内存节的分配分析接手(锁保护的对象常是分配器或连接池);栈顶在 io_schedule 移交存储节;栈顶在网络收发移交网络节。端到端一节的决策树就是这份移交规则的图形化。建议读者把五章的"定罪命令"抄成一张卡片:每类资源只记三条最短命令,事故时先跑卡再翻书——画像章的价值不在命令多,而在压力下你知道下一步该移交谁。
使用本章命令时记住三个"不要":不要用单一指标定罪——每个资源都要凑齐利用率、饱和度、错误三个视角才闭合证据链;不要忽略测量位置——同一指标在客户端、服务端、内核三处读数不同,案卷里要写明测量点;不要在因果未定时改配置——画像的产出是"嫌疑排序"而非"修复方案",先定罪后动刀。这三个纪律与前一章的工具选型、后一章的验尸方法一脉相承,共同构成单机取证的完整闭环。