最直观判断多核cpu利用效率的方式是查看每个逻辑处理器的实时占用率;windows需右键cpu图表→“将图形更改为”→“每个逻辑处理器”;mac用活动监视器勾选“每核心显示”;linux用top按1或mpstat -p all 1。
直接看每个逻辑处理器的实时占用率,是判断多核cpu是否被有效利用最直观的方式。总使用率低但系统卡顿?很可能是单线程程序把一对超线程核心占满了,其他核心却闲着。
Windows 任务管理器中启用逻辑处理器视图
默认打开“性能”→“CPU”页看到的是一条汇总曲线,无法区分核心。必须手动切换:
- 在CPU图表区域右键 → 选择“将图形更改为” → 点击“每个逻辑处理器”
- 图表会立刻拆分为多个并列小窗格,数量等于系统逻辑处理器总数(如16线程就显示16个)
- 注意别选错成“每个物理核心”,那会少一半窗格,掩盖超线程层面的负载不均问题
从图表分布识别典型负载模式
观察各窗格的波动形态,能快速定位瓶颈类型:
- 成对满载(如0/1、2/3同时100%):大概率是单线程程序跑在超线程对上,物理核心已饱和
- 奇偶交错高负载(如0/2/4/6持续60%+):可能进程被手动绑定了特定核心组,或调度策略导致负载未扩散
- 多数接近0%,仅1–2根持续满载:明确串行瓶颈,优化方向是改用多线程算法或并行工具
结合资源监视器确认进程与核心绑定关系
光看图表不够,要查清谁在占用哪些核心:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
- 在任务管理器“性能”页右下角点“打开资源监视器”
- 切到“CPU”选项卡,在下方表格中找到“关联的句柄”列
- 右键某个高负载进程 → “设置关联性”,弹出窗口里被勾选的编号,就是它实际运行的逻辑处理器
- 若只勾选了0和1,说明它被限制在第一个物理核心上——可能是兼容性设置,也可能是程序本身不支持多核
Mac 和 Linux 的对应操作
Mac 用户用“活动监视器”:
- 打开活动监视器 → 顶部菜单“窗口”→“CPU 历史记录”→ 右键空白处 → 勾选“每核心显示”
- 底部状态栏显示“核心数:X”,需与“关于本机”中逻辑处理器数一致才说明启用成功
Linux 用户用 top:
- 终端运行
top,按键盘数字 1,即可展开为每个逻辑CPU的独立负载行 - 配合
mpstat -P ALL 1可输出带编号的实时统计,便于脚本采集或日志分析










