Linux系统CPU性能分析可从基础信息、使用率、负载及优化等方面入手,结合工具与指标综合判断,具体如下:
通过/proc/cpuinfo
或lscpu
命令获取CPU核心数、架构、频率、缓存等关键信息,判断硬件基础是否满足业务需求。
cpu cores
(物理核心数)、siblings
(逻辑线程数),超线程技术可提升并行处理能力。cpu MHz
(当前频率)、cache size
(L2/L3缓存大小),高频多缓存可加速计算密集型任务。整体使用率
top
、htop
或mpstat
查看%us
(用户态)、%sy
(内核态)、%id
(空闲率)、%wa
(I/O等待)等指标。
%us + %sy
通常在60%-80%,%id
应大于20%,%wa
高于20%可能存在I/O瓶颈。mpstat -P ALL
可查看每个物理CPU的使用率,判断是否存在核不均衡问题。平均负载(Load Average)
uptime
或top
查看1/5/15分钟平均负载,数值应接近CPU核心数,超过核心数可能表示进程排队或资源不足。上下文切换
vmstat 1
中的cs
(上下文切换次数/秒),频繁切换可能由锁竞争或线程过多导致,需优化代码或调整进程数。top -c
或pidstat -p <PID>
查看具体进程的CPU占用率、线程数及系统调用情况。perf record
+perf report
生成火焰图,定位代码中耗时最多的函数,优化算法或异步处理。renice
降低非核心进程优先级,taskset
绑定关键进程到独立CPU核。irqbalance
服务将硬件中断分散到多核,避免单核压力过高。场景 | 工具 | 核心功能 |
---|---|---|
快速概览 | top /htop |
实时显示CPU使用率、进程状态及负载 |
详细分析 | perf |
采样分析CPU缓存、分支预测、函数耗时等 |
历史数据 | sar |
记录CPU使用率、上下文切换等历史指标 |
I/O关联分析 | iostat /iotop |
排查CPU等待I/O的情况 |
通过以上方法,可系统性定位CPU性能瓶颈,针对性优化硬件配置或软件逻辑,提升系统响应速度与稳定性。