perfmon.msc(定位CPU问题)
perfmon.msc(性能监视器)定位 Windows CPU 问题,核心是通过添加关键计数器实时监控 / 日志分析,先判断 CPU
瓶颈类型,再定位到进程 / 线程,最后结合 JDK 工具深挖 Java 问题,以下是精准可落地的完整流程
二、添加 CPU 核心计数器(必选)
这是判断 CPU 瓶颈的核心步骤,优先添加以下计数器,覆盖整体、用户 / 内核、进程、线程与中断维度:
| 计数器路径 | 作用 | 正常阈值 | 异常判断 |
|---|---|---|---|
| \Processor(*)% Processor Time | 整体 CPU 使用率(* 含所有核心,_Total 为总和) | < 70% | 持续 > 80% 为瓶颈,>90% 严重 |
| \Processor(*)% User Time | 用户态 CPU(如 Java 应用) | < 50% | 持续 > 80% 多为应用代码问题 |
| \Processor(*)% Privileged Time | 内核态 CPU(如驱动、系统调用) | < 30% | 持续 > 50% 多为驱动 / 系统服务问题 |
| \Process(*)% Processor Time | 单个进程 CPU 占用(筛选 java.exe/javaw.exe) | — | 占比高的进程优先排查 |
| \Thread(*)% Processor Time | 单个线程 CPU 占用(需指定进程 PID) | — | 定位进程内高 CPU 线程 |
| \System\Processor Queue Length | CPU 等待队列长度 | 每核心 < 2 | 持续 > 2 且 CPU 高,说明调度拥堵 |
| \Processor(*)% Interrupt Time | 中断占用时间 | < 5% | 持续 > 10% 多为硬件 / 驱动问题 |
添加操作步骤
- 右键性能监视器图表→「添加计数器」;
- 在弹出窗口中,依次展开上述计数器类别,选中目标计数器→「添加」→「确定」;
- 若需监控特定 Java 进程,在 \Process 类别中筛选 PID 对应的 java.exe/javaw.exe。
通过arthas thread -n 5 指定进程PID查看

1 | "flow-execute290488" Id=930149 cpuUsage=46.42% deltaTime=93ms time=31828ms RUNNABLE |