在处理 Flink 线上任务中个别 TaskManager(TM)节点 CPU 长期 100% 的问题时,需要一套从定位到抓取再到分析的标准排查方法论。 以下是完整的实战排查步骤,涵盖 Flink 原生功能、基础命令以及高阶诊断工具(如 Async-profiler、Arthas)。 --- 第一阶段:精准定位异常进程与线程 在抓取信息之前,必须先明确是哪个进程、哪个线程在消耗 CPU。 1. 定位异常 TaskManager 的 PID 登录到 CPU 100% 的机器或 Pod。 使用 或 找到 TM 的进程 ID(假设 PID 为 )。 2. 定位高 CPU 消耗的 OS 线程 执行 。 观察 列,找到占用 CPU 最高的几个线程 PID(假设为 )。 将该十进制的线程 ID 转换为十六进制:,得到 。这个十六进制值对应 Java 线程 Dump 中的 (Native ID)。 --- 第二阶段:轻量级诊断 —— 抓取与分析 Thread Dump 如果机器还没有完全卡死,可以先用轻量级方式抓取线程快照。 1. 使用 Flink Web UI(最简单,但可能因 100% 响...