我们的 Web 应用程序在 Apache-Tomcat-8.5.5 和 java 1.8 (linux-amd64) 上运行。应用程序使用带有 oracle 数据库的 hikari db 连接池。
经过一段随机时间(3-4 周)后,我们收到“java.lang.OutOfMemoryError: Compressed class space”异常,然后服务器挂起并没有响应。这一直持续到我们重新启动服务器。
由于内存异常,活动 hikari 连接数一直在增加,直到重新启动,并且还发现很少有线程卡住(运行超过 5 分钟)。
在分析了内存异常的堆转储后,内存利用率似乎很正常并且没有达到限制(JAVA_OPTS="$JAVA_OPTS -XX:NewSize=2048m -XX:MaxNewSize=2048m -Xms6144m -Xmx6144m -XX:PermSize=200m - XX:MaxPermSize=1024m)
有人能说出是什么原因造成的,或者什么有助于确定根本原因吗?