我的应用程序在服务器日志中不断停止工作和下线: [Full GC 1989887K-> 1989887K(1989888K),3.8619050 secs]
我的服务器配置如下:
server
-verbose:gc
-Xms2g
-Xmx2g
-XX:NewSize=1048m
-XX:MaxNewSize=1048m
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:SurvivorRatio=8
-XX:TargetSurvivorRatio=8
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:+CMSParallelRemarkEnabled
-XX:+AggressiveOpts
-XX:GCTimeRatio=20
-XX:-HeapDumpOnOutOfMemoryError"
OS specific support. $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
我使用Java 1.7,Tomcat 8和postgres作为数据库
请帮助,因为我需要在每2小时后重新启动服务器以重新启动应用程序
答案 0 :(得分:0)
将PermSize和MaxPermSize更改为512米,然后重试:)。您将在bin目录中的setenv.bat文件中找到这些值。必须根据您的需求和内存限制进行调整。在这里查看这篇文章 https://dzone.com/articles/java-performance-tuning
答案 1 :(得分:0)
使用增量gc减少暂停
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode