我们有一个运行在Tomcat8.5.47服务器上的Java8 Web应用程序。我们每次只有20-60个用户会话,但大部分时间上传文件大小高达600MB。我们还使用Hibernate和C3P0来管理数据库连接。
我们监控了几天服务器,发现有时候Java保留的RAM突然增加,垃圾回收器没有释放它。我们如何管理这个问题?是否有任何方法可以释放保留的RAM并防止Tomcat增加RAM?还有降低任务管理器中使用的RAM的方法吗?
以下是我们的设置:
我们监控了几天服务器,发现有时候Java保留的RAM突然增加,垃圾回收器没有释放它。我们如何管理这个问题?是否有任何方法可以释放保留的RAM并防止Tomcat增加RAM?还有降低任务管理器中使用的RAM的方法吗?
以下是我们的设置:
-XX:MaxPermSize=1g -XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxHeapFreeRatio=15 -XX:MinHeapFreeRatio=5 -XX:-UseGCOverheadLimit -Xmn1g -XX:+UseCompressedOops -Xms10g -Xmx56g
附注:我们使用JProfiler进行分析,绿色表示保留的内存,蓝色表示已用内存。第二个框可以跟踪垃圾回收活动,第三个框用于类,第四个框显示线程活动,最后一个框用于CPU活动。
感谢大家的回答。