JAVA 十一月 19, 2023

【转】由 System.gc() 频繁引起 Full GC 的问题排查

文章字数 4.8k 阅读约需 4 mins.

原文地址:https://mp.weixin.qq.com/s/IHMHP9b-k0XwKPE1KjpLoQ

早上服务频繁出现 Full GC 报警(由于昨晚下掉了 -XX:+DisableExplicitGC...

查看全文

JAVA 十二月 26, 2021

ThreadLocal 泄露实例

文章字数 10k 阅读约需 9 mins.

Java 中,ThreadLocal 是线程本地变量,可用来在多线程环境,为每个线程保存一份独立的变量,不会被其他线程所操作。

关于 ThreadLocal 详细的介绍及用法,可以查阅 An Introduction to ThreadLocal in Java

线程的创建和销毁是很昂贵的操作,需多线程执行时,一般会使用线程池。当线程池和 ThreadLocal 同时使用时,因为线程在使用完成后会归还给线程池,供下次使用,而并非销毁再重新创建,所以如果之前线程存入的本地变量没有进行清理,后续...

查看全文

JAVA 十二月 12, 2021

找出 Java 应用频繁 Full GC 的原因

文章字数 12k 阅读约需 11 mins.

一个线上的 Java 应用(JDK1.8,默认 Parallel GC)在运行几天之后,出现频繁 Full GC 的现象,使用 jstat -gcutil <pid> 2s 观察,状态大致如下:

$ jstat -gcutil 23426 2s
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
  0.00   0.00  93.17  99.99  83.81  78.48   1814   90.687    45  261.660  352.347
  0.00   0.00  97.30  99...
查看全文
0%