1

系统详情:

  • 红帽企业 Linux 6.3
  • Sun Java JDK 1.6.0_38
  • Apache Tomcat 7.0.34
  • VMWare 环境

我:中等经验的 Linux 管理员,试用过 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"
4

0 回答 0