在linux系统性能排查、应用调优过程中,掌握cpu执行分布是定位卡顿、资源占用异常的核心步骤。不同于只看整体cpu使用率,查看执行分布能帮我们明确资源到底消耗在内核态还是用户态,归属哪个进程、甚至哪个代码函数,不同场景可以选择对应工具快速获取准确的需求数据。

基于top/htop查看概览级cpu执行分布
top是linux默认自带的基础工具,也是查看cpu分布最快捷的方式。打开top后界面顶端会直接显示整体cpu的占比拆分:us代表用户态应用执行占比,sy代表内核态(系统调用、中断处理)执行占比,ni代表调整过优先级的用户进程占比,id代表cpu空闲占比,wa代表io等待占比,hi和si分别对应硬中断、软中断的消耗占比。在top界面按下p键,就能按cpu占用对进程排序,快速定位占用资源最高的进程。如果安装了美化增强版htop,还可以直接看到每个逻辑cpu的单独执行分布,更直观判断多核负载是否均衡。

用mpstat查看多核cpu的独立执行分布
如果需要精准查看每个cpu核心的单独执行分布,mpstat是更专业的工具,安装sysstat工具包后即可使用。执行命令`mpstat -p all 1`,就会每秒刷新输出所有逻辑cpu的执行分布数据,每个核心都会单独列出各类占比指标,能快速发现是否存在单核跑满、其他核心空闲的负载不均衡问题,这对排查单线程应用的性能瓶颈非常高效,比如可以直接确认是否是应用并发设计不足,导致整体cpu占用不高但业务卡顿的问题。
用perf工具查看函数级执行热点分布
如果需要深入到代码层面看cpu执行分布,linux原生的perf工具可以满足需求。执行`perf top`就能实时按占用排序显示各个函数、进程的cpu占比,直接定位消耗cpu最多的代码段;如果需要更完整的分布报告,可以用`perf record -g`捕获一段时间的cpu执行采样,再通过`perf report`查看分层的调用链占比,明确全链路的cpu消耗分布,适合应用级的深度性能调优。
不同工具对应不同粒度的查询需求,从概览到细粒度分层排查,就能快速理清cpu的执行分布,精准定位各类性能异常问题,全文约672字。



































