真实面经题目 · 原创解析
CPU load 是什么?
这题考 Linux 性能指标理解,回答要区分 load average、CPU 使用率、核数和不可中断 I/O 等待。
真实面经题目 · 原创解析
这题考 Linux 性能指标理解,回答要区分 load average、CPU 使用率、核数和不可中断 I/O 等待。
CPU load average 表示一段时间内处于可运行态和不可中断睡眠态的任务平均数量,常见是 1 分钟、5 分钟、15 分钟三个值。它不等于 CPU 使用率:CPU 使用率高说明 CPU 忙,load 高说明排队或不可中断等待的任务多。判断是否异常要和 CPU 核数比较,并结合 us、sy、iowait、run queue、上下文切换、磁盘 I/O、锁等待和业务延迟一起看。
load average 不是百分比,而是平均活跃任务数。Linux 中通常包括正在运行、等待 CPU 的可运行任务,以及处于不可中断睡眠的任务。
load 要和 CPU 核数一起看。4 核机器长期 load 约 4 可能表示接近满载;长期明显高于 4 说明存在排队压力;单看绝对值没有意义。
CPU 使用率来自 CPU 时间占比,load 来自任务队列压力。可能 CPU 使用率很高且 load 高,说明 CPU 忙;也可能 CPU 不高但 load 高,说明任务卡在不可中断 I/O、锁或内核等待。
1 分钟值反映短期波动,5 分钟和 15 分钟反映持续趋势。1 分钟高、15 分钟低可能是瞬时突刺;三个都高才更像持续容量或阻塞问题。
先看业务延迟和错误,再看 top、uptime、vmstat、pidstat、iostat、sar、perf 等指标。根据 CPU 消耗、iowait、上下文切换、运行队列和进程状态判断是计算、I/O、锁竞争还是线程过多。
常见是磁盘 I/O、网络文件系统、块设备等待、内核锁或大量任务处于不可中断睡眠,需要看 iowait、D 状态进程和 I/O 指标。
没有固定值,要看 CPU 核数和业务延迟。长期超过核心数并伴随延迟升高,通常说明系统有排队或阻塞压力。
更像短时流量尖峰、批任务或瞬时阻塞,需要结合当时业务曲线和告警判断是否需要扩容或限流。
先确认用户影响,再定位是哪些进程贡献 load,然后看 CPU 时间、I/O 等待、线程数、锁竞争和最近变更。