我正在使用Struts1.x Web应用程序并使用weblogic服务器,当对非常大的数据执行某些处理时,它几乎消耗所有RAM,但在完成或会话超时后,它不会返回消耗的RAM。 在我停止服务器或强行终止之前,它永远不会释放RAM。想知道这样的场景,即在使用后没有释放RAM利用率,以及是否可以通过调整weblogic参数或其他方式来解决它。
在weblogic中使用以下参数:
-Xms12g -Xmx12g -XX:MetaspaceSize=1G -XX:MaxMetaspaceSize=1G
-XX:NewRatio=3 -XX:SurvivorRatio=8 -XX:+UseCompressedOops
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+DisableExplicitGC
-XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSClassUnloadingEnabled
-XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68
-DBASE_CONFIG_LA=/data01/Lending_Analytics_weblogic/LendingAnalyticsPQM/config/
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError
-XX:+UseGCOverheadLimit -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2m -Xloggc:/data01/Lending_Analytics_weblogic/LendingAnalyticsPQM/GCLogs/gc.log
***分析GC日志后无法找到任何GC问题。
***通过eclipse内存泄漏编译器修复了代码中的所有内存泄漏问题