JDK8ããããã¡ãã£ã¨å¬ããGCãã°ãªãã·ã§ã³
JDK8ããã³JDK8u20ã§ã¯ãGCãã°ã«é¢é£ãã2ã¤ã®ä¾¿å©ãªæ©è½ã追å ããã¦ããããããã®æ©è½ã2014/8ç¾å¨ææ°ã®JDK7 update 67 ã«ã¯å«ã¾ãã¦ããªãããJDK7u80ã«ã¦ããã¯ãã¼ããããäºå®ã
GCãã°ã«pidã¨æ¥ä»ãå«ãã (JDK8ãã)
JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/wildfly/gc_%p_%t.log" => å®éã®ãã¡ã¤ã«åä¾ : gc_pid31455_2014-08-31_14-20-16.log.0
GCãã°ã®ãã©ã¼ãããã«%pãå
¥ããã¨pid-Xloggc:gc.log.`date +%Y%m%d%H%M%S`
ã®ããã«OSã³ãã³ãã«ãã£ã¦ãã¡ã¤ã«åã«æ¥ä»ãä»ä¸ãã¦ãããããã®æ©è½ã®è¿½å ã«ããOSã³ãã³ãã¸ã®ä¾åããªããªãã®ã§ä¾¿å©ã
jcmd GC.rotate_logã«ãããã¼ãã¼ã·ã§ã³ (JDK8u20ãã)
JDK8u20ããjcmdã«GCãã°ããã¼ãã¼ã·ã§ã³ãããã³ãã³ãã追å ããã¦ããã
jcmd <pid> GC.rotate_log
以åããGCãã°ã«ã¯ãµã¤ãºãã¼ãã¼ã·ã§ã³æ©è½ãä»ä¸ããã¦ããããJavaã®å ´åãã°ã®ãªãã¼ãæ©è½ããªããããlogrotate.dãªã©ã«ããæ¥ä»ãã¼ãã¼ã·ã§ã³ãå°é£ã§ãã£ããGC.rotate_logã®å°å ¥ã«ããã以ä¸ã®èµ·åãªãã·ã§ã³ã¨çµã¿åãããã¨æ¥ä»å¥æ©ã®ãã°ãã¼ãã¼ã·ã§ã³ãå®ç¾ã§ããã
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=0
UseGCLogFileRotationããã³NumberOfGCLogFilesãè¨å®ããã¦ããªãç¶æ
ã§jcmd
ãå®è¡ããã¨ãGCãã°ãã¼ãã¼ã·ã§ã³ãæå¹ã¨ãªã£ã¦ããªããã¨ã示ãã¨ã©ã¼(Target VM does not support GC log file rotation.)ã¨ãªããã¾ããGCLogFilzeSize=0ãè¨å®ãããã¡ã¤ã«ãµã¤ãºå¥æ©ã®ãã¼ãã¼ã·ã§ã³ãæ¢ãã¦ããã
NumberOfGCLogFilesã®æå®ãGC.rotate_logã®å®è¡ã«å¿ é ã§ããããã ãã°ã®ä¸ä»£æ°ç®¡çãlogrotate.dã«ä»»ããã®ã¯é£ãããã¾ããã¡ã¤ã«ã®ã³ãã¼ãä¸ä»£æ°ãè¶ ãããã¡ã¤ã«ã®åé¤ã¯JVMãè¡ã£ã¦ããããããlogrotate.dã使ããã«ã¾ãã¯ã試ãã¨ãã¦ç´æ¥cron.dailyã«å ¥ãã¦ã¿ãã
# touch /etc/cron.d/cron.daily/gclog_rotate # vim /etc/cron.d/cron.daily/gclog_rotate #!/bin/sh sudo -u wildfly /usr/java/jdk1.8.0_20/bin/jcmd `cat /var/run/wildfly/wildfly.pid` GC.rotate_log
/var/run/wildfly/wildfly.pidããèµ·åä¸ã®WildFlyã®ããã»ã¹IDã確èªãã¦ãããWildFlyã§ãªãã¦ãã/etc/rc.d/init.dã«ç»é²ãã¦ããå ´åã¯/var/runé ä¸ã«ç¾ç¶ã®ããã»ã¹IDã示ããã¡ã¤ã«ãåºåãããã¨æãã