java.lang.OutOfMemoryError: Compressed class space
2022-09-03 06:05:24
我们在java-8-oracle上运行。
六个月前,我们迁移到了 java8。
在过去的几天里,我们不时收到OOME,但我们无法识别或重现问题。
当我们执行对服务器(tomcat)的调用时,我们在堆栈跟踪上收到此错误:
java.lang.OutOfMemoryError: Compressed class space
重新启动服务器可以解决问题。对其他服务器的相同调用有效,对同一服务器的另一种类型的另一种调用也是如此。
在查看 gc 时.log我们会看到:
2015-05-27T16:05:42.991+0000: 98774.440: [Full GC (Last ditch collection) 98774.440: [CMS: 575745K->575330K(3495936K), 0.8687777 secs] 575745K->575330K(4107008K), [Metaspace: 97940K->97940K(1396736K)], 0.8696093 secs] [Times: user=0.95 sys=0.00, real=0.88 secs]
2015-05-27T16:05:55.486+0000: 98786.935: [Full GC (Metadata GC Threshold) 98786.935: [CMS: 573414K->578735K(3495936K), 0.9372859 secs] 925046K->578735K(4107008K), [Metaspace: 99428K->99428K(1396736K)], 0.9386626 secs] [Times: user=1.01 sys=0.00, real=0.94 secs]
jstat -gc
返回:
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
87296.0 87296.0 0.0 3151.4 523776.0 148284.4 3495936.0 574868.5 1395640.0 98066.3 1048576.0 11339.1 12165 636.851 223 116.957
753.808
我在jstat日志或gc日志中都没有看到任何内存问题。
尝试运行挂起:jmap -clstats
Attaching to process ID 5110, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.25-b02
finding class loader instances ..