システムの詳細:
- Red Hat Enterprise Linux 6.3
- Sun Java JDK 1.6.0_38
- Apache Tomcat 7.0.34
- VMWare環境
私:中程度の経験を積んだLinux管理者、Fire Java / Tomcat管理者による試用版、Javaプログラミング/コードについてほとんど理解していません。
私が設定した環境変数は、stackoverflowの投稿、oracle docs、および300程度の他のWeb投稿を何ヶ月も掘り下げた結果であり、その多くは、競合する情報や、異なるバージョンのJavaVMに関する詳細を含んでいます。
問題時々、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"