>本文系统性地讲解了解决线上Full GC问题的方法,分为紧急处理、根因分析和长期优化三个阶段。 线上出现 Full GC 是一个非常严重的问题,通常意味着系统性能出现瓶頸或即将中断服务。解决这个问题需要一套系统性的方法,从紧急处理到根因分析,再到长期优化。 下面我将这个过程分为三个阶段:“救火”(紧急处理)、“破案”(根因分析)和“固本”(长期优化)。 --- 第一阶段:救火(紧急处理) 当线上告警 Full GC 频繁,甚至服务已经开始响应缓慢或不可用时,首要目标是 快速恢复服务。 这套操作俗称“三板斧”: 1. 隔离实例 (Isolate) 操作:如果你的服务是集群部署,立即将有问题的节点从负载均衡(Nginx, SLB 等)中摘除,不再让它接收新的流量。 目的:避免单点问题影响整个服务的可用性。让健康的节点继续提供服务。 2. 保留现场 (Dump) 操作:在重启应用之前,务必保留现场证据,这是后续“破案”的关键。 内存快照 (Heap Dump):这是最重要的证据。执行 命令来生成堆转储文件。 参数只 dump 存活的对象,可以减小文件大小,分析时更有针对性。 线程快照...