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性能瓶颈,针对性优化硬件配置或软件逻辑,提升系统响应速度与稳定性。