系统详细信息:
我: 经验丰富的Linux管理员,试用Fire / Java / Tomcat管理员,几乎不了解Java编程/代码。
我设置的环境变量是通过stackoverflow帖子,oracle文档和300个左右的其他网络帖子挖掘数月的结果,其中大部分都是有关于不同版本的java VM的冲突信息或详细信息。
问题 有时,Tenured Generation(也称为Old)不会清空/垃圾收集。这会导致最终用户的性能降低。从Visual VM启动垃圾收集有时可以解决问题,但不经常解决。我通常能够进行堆转储,但不幸的是我不知道我在寻找什么。我应该寻找什么信息?我确信代码有问题,但“修复代码”不是一个直接的选择。如果它就像投入更多内存/金钱一样简单,我会这样做,但我希望Java只是清空垃圾桶。 如果需要更多细节,我很乐意提供它们,我可能需要审查一些内容,因为有一些“私人信息”。
setenv.sh内容
export JAVA_HOME="/usr/java/jdk1.6.0_38"
export CATALINA_OPTS="$CATALINA_OPTS -verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails"
export CATALINA_OPTS="$CATALINA_OPTS -Xms512m -Xmx512m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+CMSClassUnloadingEnabled"
export CATALINA_OPTS="$CATALINA_OPTS -XX:CMSInitiatingOccupancyFraction=75"
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export CATALINA_OPTS="$CATALINA_OPTS -server"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.port=8008"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=/home/otrack/tomcat7/conf/management.jmxremote.password"
export CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=10.47.10.113"
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"