JVM 在线诊断先确认采集代价与保密边界
排查 Java 服务的 CPU、内存或卡顿时,先确定进程、故障时段及容器资源边界,保留应用日志和监控曲线,再按假设选择线程、GC 或堆对象证据。同一份线程快照通常不足以证明持续阻塞;应结合不同时间点的状态与请求、下游依赖记录。
不同诊断操作的影响差异很大。线程栈、对象直方图、JFR 和完整堆转储所需的权限、运行成本及磁盘空间均需按目标 JDK 核对;尤其不能把完整堆转储当成“无侵入”的默认步骤。采集前明确谁批准、存放位置、容量上限和清理方式。
启动参数、线程栈、日志与堆转储可能含连接串、令牌、用户数据或内部路径。原始产物只进入受控存储;进入知识库前先提炼匿名证据,避免上传到第三方在线分析站点。
**核验边界:**诊断命令类别与影响等级已对照 Oracle JDK 21 jcmd 文档。来源中的一键采集脚本、固定采样次数及容器操作未验证,本文不提供可直接执行的生产命令。关联 JVM、Tomcat 与 Spring Boot 模块。