Javaã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã¡ã«ããºã ã®è€æ°ã®ã¬ãã¥ãŒããã§ã«èªãã§ããããšã¯ééããããŸãã
ãXmxã
Xmsãªã©ã®ãªãã·ã§ã³ãèšå®ããããšã¯ãããªãã«ãšã£ãŠã«ãŒãã³ã«ãªã£ãŠããŸãã ããããã¡ã¢ãªå
ã®äžèŠãªãªããžã§ã¯ããåé€ãããšããæ¥ãŠãçæ³çã«æé©åãããã¡ãœãããå¿
èŠä»¥äžã«æ°åå®è¡ããå§ãããšãã«ãä»®æ³ãã·ã³ã®å
éšã§äœãèµ·ãã£ãŠããã®ããæ¬åœã«è©³ããç解ããŠããŸããïŒ ãŸããææ°ã®JavaããŒãžã§ã³ããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžãã責任ã®ããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®äœæ¥ãæé©åããããã«æäŸããæ©èœãç¥ã£ãŠããŸããïŒ
ããã€ãã®èšäºã§ã¯ããã¹ãŠã®ã¬ããŒãžã³ã¬ã¯ã¿ãŒã®æ ¹åºã«ããåºæ¬çãªã¢ã€ãã¢ã®èª¬æãããããŸããŸãªJava HotSpot VMã³ã¬ã¯ã¿ãŒã®äœæ¥ã¢ã«ãŽãªãºã ãšåŸ®èª¿æŽæ©èœã®åæã«é²ã¿ãŸãïŒãã®ãããªã³ã¬ã¯ã¿ãŒã4ã€ããããšããåç¥ã§ããïŒïŒã ãããŠæãéèŠãªã®ã¯ããã®ç¥èãå®éã«ã©ã®ããã«äœ¿çšã§ããããæ€èšããããšã§ãã
以äžã«èšèŒãããŠãããã¹ãŠãHotSpotä»®æ³ãã·ã³ã«é©çšãããããšã«æ³šæããŠãã ããã ãããã£ãŠãæ¬æã§JVMã«ã€ããŠèšåããŠããå Žåã¯ãããããŸãã«ãã®å®è£
ã§ãã ãã ããåºæ¬ååã¯ä»ã®ãã³ããŒã®ä»®æ³ãã·ã³ã«é©çšãããŸããã詳现ã¯å€å°ç°ãªãå ŽåããããŸãã
å¿
èŠã§ããïŒ
åççãªè³ªåã ãã¹ãŠã®ããã°ã©ã ãããã©ãã«ã®ãªãæäœã®ããã«ã¬ããŒãžã³ã¬ã¯ã¿ã埮調æŽããå¿
èŠãããããã§ã¯ãããŸããã å€ãã®å Žåãå¿
èŠãªéã®ã¡ã¢ãªãå²ãåœãŠãã ãã§ååã§ãã æçµçã«ããŸããªãŠãŒã¶ãŒã¯ãããã°ã©ã ã®å¿çãéåžžããã100ã2ããªç§é·ããããããšã«æ°ä»ãã§ãããã
ãã ããããã°ã©ã ã§äœ¿çšãããã¡ã¢ãªéã¯ãã¯ãªãŒãã³ã°ã«æ°ç§ãå Žåã«ãã£ãŠã¯æ°åç§ãããããšããããŸãã ãŸãã¯ããµãŒãã¹ã¯å³æ Œãª
SLAã«ãã£ãŠæ¥ç¶ãããŠãããæ°åããªç§ãå·Šå³ã«åæ£ãããäœè£ã¯ãããŸããã ãŸãã¯ã奜å¥å¿ãããªãã®ããã°ã©ã ãè
žã§äœããããŠãããšããäºå®ã«ç®ãã€ã¶ãããšãèš±å¯ããŸããããããŠããªãã¯äœãç¥ããŸããã ãããã®å Žåãç解ããŸãããã
åå²ããŠåŸæãã
Augeanã®stableèã®æž
æã«çŽæ¥åãçµãåã«ããããã®äžè¬çãªæ§é ãèŠãŠãå
·äœçã«äœã«çŠç¹ãåœãŠãããã決ããŸãããã
JVMã¯ã䜿çšããã¡ã¢ãªã2ã€ã®é åã«åå²ããŸããã¢ããªã±ãŒã·ã§ã³ããŒã¿ãæ ŒçŽããã
ããŒããšãããã°ã©ã ã³ãŒãããã³ãã®ä»ã®è£å©ããŒã¿ãæ ŒçŽããã
éããŒãã§ãã
ã¢ããªã±ãŒã·ã§ã³ãåäœäžã«æ°ããã¯ã©ã¹ãçæãããåžžã«ã¯ã©ã¹ãããŒã/ã¢ã³ããŒãããªãå ŽåãéããŒãç¶æ
ã¯éçã«è¿ããé·æçã«ã¯æé©åãããŸããã ãã®ç¹ã§ãããã§ã¯éããŒãé åã®æ©èœã®ã¡ã«ããºã ãèæ
®ãããç§ãã¡ã®åªåãæ倧ã®å©çãããããé åã«çŠç¹ãåœãŠãŸãã
Javaã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠæ瀺çãŸãã¯æé»çã«äœæããããã¹ãŠã®ãªããžã§ã¯ãã¯ãããŒãã«é
眮ãããŸãã ãªããžã§ã¯ããšãã®åŠçã¢ã«ãŽãªãºã ã®é
眮ã®æé©åã«é¢ããŠãèªåã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã䜿çšããèšèªéçºè
ã¯ãäœæã®åæ¥ããèŠåŽããŠããŸãã ãããŠãå°ãªããšãè¿ãå°æ¥ãåŠçãããããŒã¿ã®éãå¢ããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã§ã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®èŠä»¶ãéåžžã«ç°ãªãããããã®æŠãã¯ç¶ãã§ãããã ç§ãã¡ã®ããžãã¹ã¯ãç¶æ³ã®çºå±ãç£èŠããæ¢åã®ããŒã«ããå¯èœãªéãå€ãã®å©çãåŒãåºãããšã§ãã
äžä»£ããäžä»£ãž
ç®æšïŒããŸããŸãªå Žåãããã以äžã§æ確ã«æ€èšããŸãïŒãè¿œæ±ããããã«ãç°ãªãã¬ããŒãžã³ã¬ã¯ã¿ãŒã¯ã¡ã¢ãªã®æŽçãšã¯ãªãŒãã³ã°ã«ç°ãªãã¢ãããŒãã䜿çšããŸãããå
±éç¹ã1ã€ãããŸãããããã¯ãã¹ãŠã
匱ãäžä»£ã®ä»®èª¬ã«äŸåããŠããŸãã äžè¬çã«èšãã°ãäžä»£ä»®èª¬ã¯ã幎霢ã®é¢æ°ãšããŠã®æ»ã®ç¢ºçã¯éåžžã«æ¥éã«æžå°ãããšèšããŸãã ç¹ã«ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãžã®å¿çšã¯ã倧å€æ°ã®ãªããžã§ã¯ããããŸãé·ãçããŠããªãããšãæå³ããŸãã 人éã®åºæºã§ã¯ãã»ãšãã©ã幌çšåã«ããè¡ããªãã§ãããã ãŸãããªããžã§ã¯ããé·çãããã»ã©ããªããžã§ã¯ããåç¶ããå¯èœæ§ãé«ããªãããšãæå³ããŸãã
ã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯ããªããžã§ã¯ãã®å¯¿åœã®ååžãããã次ã®ãããªæ²ç·ã§æŠç¥çã«èª¬æãããŸãã
倧éšåã®ãªããžã§ã¯ãã¯éåžžã«çæéã§äœæãããæåã«äœ¿çšããçŽåŸã«ã¯äžèŠã«ãªããŸãã å埩åãããŒã«ã«ã¡ãœããå€æ°ããã¯ã·ã³ã°çµæãããã³æé»çã«äœæãããããšãå€ããã®ä»ã®äžæãªããžã§ã¯ãã¯ããã®ã«ããŽãªã«åé¡ãããã°ã©ãã®æåã«ããŒã¯ã圢æããŸãã
次ã«ãäœæããããªããžã§ã¯ãã¯ãå€å°é·ãèšç®ãå®è¡ããããã«äœæãããŸãã 圌ãã®ç掻ã¯ããå°ãå€æ§ã§ã-圌ãã¯éåžžãããŸããŸãªæ¹æ³ã§æ©ã¿ãããã»ã¹ã§èªåèªèº«ãå€ããŠè±ãã«ããŸããããã®åŸã¯äžèŠã«ãªãããŽãã«ãªããŸãã ãã®ãããªãªããžã§ã¯ãã®ãããã§ãäžæçãªãªããžã§ã¯ãã®ããŒã¯åŸã«å°ããªçµç¯ãã°ã©ãã«è¡šç€ºãããŸãã
ãããŠæåŸã«ãã»ãšãã©ãã¹ãŠã®äººãçãæãæã®äººã¯æ°žä¹
çãªããã°ã©ã ããŒã¿ã§ãããå€ãã®å ŽåãæåããããŠã³ããŒããããã¢ããªã±ãŒã·ã§ã³ãåæ¢ãããŸã§é·ã幞ããªç掻ãéã£ãŠããŸãã
ãã¡ãããåã¢ããªã±ãŒã·ã§ã³ã¯ç¬èªã®æ¹æ³ã§äžæã§ããããããããã®å Žåãããã®ã°ã©ãã¯å€åããæ¯çãå€æŽããç°åžžã衚瀺ãããŸãããã»ãšãã©ã®å Žåããã©ãŒã ã¯ããã ãã§ãã ãã®ã°ã©ããå¿ããªãã§ãã ãããæé©åãå®è¡ããéã«åœ¹ç«ã¡ãŸãã
ããã«ãããéçºè
ã¯ããŸãæåã«ãæè¿äœæããããªããžã§ã¯ãã®ã¯ãªãŒãã³ã°ã«éäžããå¿
èŠããããšããèãã«è³ããŸããã ãã®äžã«ã¯ãå€ãã®å Žåããã§ã«èªåèªèº«ãããé·çãããŠãã人ã
ããå€ããããæå°éã®åŽåã§æ倧ã®å¹æãåŸãããšãã§ããŸãã

ããã§ããªããžã§ã¯ãã
è¥ãäžä»£ïŒè¥ãäžä»£ïŒãš
å€ãäžä»£ïŒå€ãäžä»£ïŒã«åå²ãããšããã¢ã€ãã¢ã
çãŸããŸãã ãã®åé¢ã«åŸã£ãŠãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ããã»ã¹ã¯ãè¥ãäžä»£ã®ã¿ã«åœ±é¿ãã
å°ããªã¢ã»ã³ããªïŒãã€ããŒGCïŒãš ãäž¡æ¹ã®äžä»£ã«åœ±é¿ãäžããå¯èœæ§ã®ãã
ãã«ã¢ã»ã³ããªïŒãã«GCïŒã«åããããŸãã å°ããªã¢ã»ã³ããªã¯ååãªé »åºŠã§å®è¡ãããã»ãšãã©ã®æ»ãã ãªããžã§ã¯ããåé€ãããŸãã å®å
šãªã¢ã»ã³ããªã¯ãããã°ã©ã ã«å²ãåœãŠãããŠããçŸåšã®ã¡ã¢ãªéã䜿ãæããããå°ããªã¢ã»ã³ããªãçãããšãã§ããªãå Žåã«å®è¡ãããŸãã
ããã«ãäžä»£ããšã®ãªããžã§ã¯ãã®åé¢ã¯æ¡ä»¶ä»ãã§ã¯ãªããã¡ã¢ãªã®ç°ãªãé åã«ç©ççã«é
眮ãããŸãã è¥ãäžä»£ã®ãªããžã§ã¯ãã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã§çãæ®ããå€ãäžä»£ã«æž¡ãããŸãã å€ãäžä»£ã§ã¯ããªããžã§ã¯ãã¯ã¢ããªã±ãŒã·ã§ã³ãçµäºãããŸã§åç¶ããããå®å
šãªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ããããã§åé€ãããŸãã
ããªãã¯éããå®ãããŸãã¯é«å質ã§ããïŒ
çŽèŠ³çã«ã¯ãäžèŠãªãªããžã§ã¯ããã§ããã ãæ©ãåãé€ããè¥ã人ãã¡ã®éãéããé·ãèèã®éãã§å¹³åãªååšã確ä¿ããã¬ããŒãžã³ã¬ã¯ã¿ãŒãå¿
èŠã§ãã ããããã¬ããŒãžã³ã¬ã¯ã¿ãŒã®äœæ¥ã¯ç¡æã§ã¯ãªããã³ã³ãã¥ãŒã¿ãŒãªãœãŒã¹ãšããã°ã©ã ã®å®è¡ã®é
延ã«ãã£ãŠæ¯æãããŸãã ãããã£ãŠã次ã«é²ãåã«ãã³ã¬ã¯ã¿ãŒã®è©äŸ¡ã«äœ¿çšãããåºæºãèŠãŠã¿ãŸãããã
åŸæ¥ãã¬ããŒãžã³ã¬ã¯ã¿ã®ããã©ãŒãã³ã¹ã決å®ããéã«ã¯ã次ã®èŠçŽ ãèæ
®ãããŸãã
- æ倧é
延-ã³ã¬ã¯ã¿ãŒã1ã€ã®ã¢ã»ã³ããªãŒãå®è¡ããããã«ããã°ã©ã ãäžæåæ¢ããæ倧æéã ãã®ãããªåè»å°ã¯ãäžçåæ¢ ïŒãŸãã¯STW ïŒãšåŒã°ããŸãã
- ã¹ã«ãŒããããšã¯ãé·æéã«ãããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«ãã£ãŠåŒãèµ·ããããç·ããŠã³ã¿ã€ã ã«å¯Ÿããç·ããã°ã©ã ã©ã³ã¿ã€ã ã®æ¯çã§ãã
- æ¶è²»ãªãœãŒã¹-ã³ã¬ã¯ã¿ãŒã«ãã£ãŠæ¶è²»ãããããã»ããµãªãœãŒã¹ãè¿œå ã¡ã¢ãªã®éã
3ã€ã®ãã©ã¡ãŒã¿ãŒãã¹ãŠãåæã«æ¹åããããšã¯ã»ãšãã©äžå¯èœã§ããããšã¯æããã§ãã æ倧é
延æéãççž®ãããšãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãå¢å ããã¹ã«ãŒããããäœäžããŸãã ãŸãã¯ã垯åå¹
ãç¯çŽããããã«ãããæŽç·Žãããã¢ã«ãŽãªãºã ã䜿çšããå¿
èŠããããå€ãã®å ŽåããªãœãŒã¹æ¶è²»ãå¢å ããŸãã ãªã©ãªã©ã
ãããã£ãŠãã¬ããŒãžã³ã¬ã¯ã¿ãŒãèšå®ãããšããéçºè
ã¯éåžžã1ã€ãŸãã¯2ã€ã®ãã©ã¡ãŒã¿ãŒã®æé©åã«çŠç¹ãåœãŠãä»ã®ãã©ã¡ãŒã¿ãŒãããŸãæªåããããå¿
èŠã«å¿ããŠããããç ç²ã«ããŸãã
ã¡ã¡ã³ãã¢ãª
äž»ãããŸã å¿
èŠãªãã®ã«å¯Ÿå¿ããå Žæããã ãã
圹ã«ç«ããªããªã£ããã®ãåé€ããåæ°ããã ãã
ãããŠããããã®ãä»ã®ãã®ãšåºå¥ããããã®ç¥æµããã ããã
-ã¬ããŒãžã³ã¬ã¯ã¿ãŒã®ç¥ã
å
ã«é²ãåã«åæãããå¥ã®éèŠãªåé¡ã¯ããã¿ã®æŠå¿µãã®ãã®ãã€ãŸã
æ»ãã ãªããžã§ã¯ãã®å®çŸ©ã§ãã
ãã§ã«äžã§èª¬æããããã«ãã»ãšãã©ã®ãªããžã§ã¯ãã¯ããã®äœæãšäœ¿åœã®éæãããŽãã«å€ããç¬éãŸã§ã®éã®ãã¯éåžžã«çãã§ãã ãããã圌ãç§ãã¡ãæãããå°ãé·ãçããŠããäžçã§åœŒãé
ãããããšãã§ããèŠå ããããŸãã
ä»ã®ãªããžã§ã¯ãããã®ãªã³ã¯ãååšãããšããäºå®ã ãã§ããªããžã§ã¯ããçããŠãããšèŠãªãããšã¯äžå¯èœã§ããããšã¯èª°ããç¥ã£ãŠããŸãã ãã以å€ã®å ŽåãJVMã§ã®äžæ»
ã®ã¬ã·ãã¯ãšãŠã€ããªãåçŽã§ãå°ãªããšã2ã€ã®ãªããžã§ã¯ãã®çžäºåç
§ãååšããäžè¬çãªå Žå-æ¥ç¶ããããªããžã§ã¯ãã®ã°ã©ãã«ãµã€ã¯ã«ãååšããããšã«ãªããŸãã ãã®ã¢ãããŒããšéãããã¡ã¢ãªéã§ã¯ãå€ããå°ãªããæ·±å»ãªããã°ã©ã ã¯é·æéåäœããŸããããããã£ãŠãJVMã¯ãªããžã§ã¯ãã°ã©ãã®ã«ãŒãã远跡ããã®ã«é©ããŠããŸãã
ãããããªããžã§ã¯ããäžä»£ã«åå²ãããšèª¿æŽãè¡ãããããããªããžã§ã¯ããæ»ãã§ãããããã°ã©ã ã§ãŸã ïŒçŽæ¥ãŸãã¯éæ¥çã«ïŒäœ¿çšãããŠãããªããžã§ã¯ãããŸã 䜿çšãããŠããªãããšã«åºã¥ããŠã®ã¿ãªããžã§ã¯ããåé€ã§ãããšèšãããšãäžå¯èœã§ãã
ãã®ç¶æ³ãèããŠã¿ãŸããããè¥ããªããžã§ã¯ãAãšãããåç
§ããŠãããªããžã§ã¯ãBãããããããã¯ãã§ã«å€ãäžä»£ã§å Žæãç²åŸããŠããŸãã ããæç¹ã§ããããã®ãªããžã§ã¯ãã®äž¡æ¹ãå¿
èŠãªããªããããããžã®åç
§ããã¹ãŠãªã»ããããŸããã æããã«ããªããžã§ã¯ãAã¯æãè¿ãå°ããªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«åé€ã§ããŸããããã®ç¥èãåŸãããã«ã¯ãã³ã¬ã¯ã¿ãŒã¯å€ãäžä»£å
šäœã調ã¹ãŠãAãåç
§ãããªããžã§ã¯ãBãã¬ããŒãžã§ããããšãç解ããå¿
èŠããããããäž¡æ¹ãšãç Žæ£ã§ããŸãã ããããå€ãäžä»£ã®åæã¯ãæ¯èŒçé«äŸ¡ãªæé ã§ãããããå°ããªã¢ã»ã³ããªã®èšç»ã«ã¯å«ãŸããŸããããããã£ãŠãå°ããªã¢ã»ã³ããªäžã®ãªããžã§ã¯ãAã¯çããŠãããšèŠãªãããŸãã

ãããã£ãŠãã»ãšãã©ã®å Žåãå°ããªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ç®çã§ã¯ããªããžã§ã¯ãã¯æ»ãã§ãããšèŠãªãããå€ãäžä»£ã®ãªããžã§ã¯ããŸãã¯ã¹ããªãŒã ã¹ã¿ãã¯ãéçã¯ã©ã¹ã¡ã³ãããã®ãªã³ã¯ãå«ããããã
rootsããã®ãªã³ã¯ã§å°éã§ããªãå Žåãå»æ£ããå¿
èŠããããŸã
ãªã©ãå®å
šãªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã䜿çšãããšãäž¡æ¹ã®äžä»£ãåæã§ãããããããã§ã³ã¬ã¯ã¿ãŒã¯ã«ãŒãããããèžãããšãã§ããŸããã
ã¡ãªã¿ã«ããªããžã§ã¯ããäžèŠã«ãªã£ãç¬éããå®éã«ã¡ã¢ãªããåé€ããããŸã§ã®æéã¯ã
ããã³ãããã¹ãšåŒã°ããã³ã¬ã¯ã¿ãŒã®å¹çãè©äŸ¡ããéã®è¿œå èŠå ãšèŠãªãããå ŽåããããŸãã
é¡åŸ®é¡äžã§
ãã®ãããã¬ããŒãžã³ã¬ã¯ã¿ãŒãäœãããã®ããã©ã®ãããªåºæºã§è©äŸ¡ã§ããã®ãã«ã€ããŠã®åºæ¬çãªã¢ã€ãã¢ãæ¢ã«åŸãŠããŸãã ããã§ãä»®æ³ãã·ã³ã®å
éšãã©ã®ããã«èŠãããšãã§ããããç解ãããã®ã§ãé ãããã¡ã«ããºã ã®åäœã芳å¯ããæ©äŒããããŸãã
ã¡ã¢ãªããã³ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ããã»ã¹ãç£èŠããããã®ããŒã«ã¯ã2ã€ã®ã°ã«ãŒãã«åããå¿
èŠããããŸãã
- å
éšãç§ãã¡ãç£èŠããŠããããã°ã©ã ã®äžéšã§ããã
- å€éšãããç 究ãããããã°ã©ã ã®ããã»ã¹ã«å€éšããæ¥ç¶ãããŠããŸãã
ã¡ã¢ãªç£èŠããŒã«ã®åé¡ã¯ãéåååŠãŸãã¯å¿çåŠã®äž¡æ¹ã§ã¡ã¢ãªãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã芳å¯ãããšããäºå®ã«ãã£ãŠã被éšè
ã®è¡åã«åœ±é¿ãäžããããšã§ãã 以äžã§ã¯ããã®ãããªåäœã®å€æŽã®äŸã瀺ããŸãããä»ã®ãšããã¯ã䜿çšããããŒã«ã«é¢ä¿ãªããå°ãªããšãç°¡åãªäŸã§ãã£ãªãã¬ãŒã·ã§ã³ã確èªããå¿
èŠãããããšãèŠããŠããå¿
èŠããããŸãïŒäœãããªãããã°ã©ã ãå®è¡ããŠç£èŠããå¿
èŠããããŸã
å
éšããŒã«
å
éšç£èŠããŒã«ã«é¢ããŠã¯ãããã§JVMã«ããŸããŸãªè©³çŽ°ã¬ãã«ïŒstdoutãŸãã¯ãã°ãã¡ã€ã«ïŒã§ã¢ã»ã³ããªã«é¢ããæ
å ±ã衚瀺ããããã¡ã¢ãªã®ç¶æ
ãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«é¢ããæ
å ±ãè¿ãMXBeansã«åå¥ã«é£çµ¡ããããšãã§ããŸãã ãç§ãã¡ã奜ããªããã«æ±ããŸãã
JVM HotSpotã§ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«é¢ããæ
å ±ã®åºåãå¶åŸ¡ãã次ã®ãªãã·ã§ã³ã䜿çšã§ããŸãïŒãããã¯ãã¹ãŠã®ã³ã¬ã¯ã¿ãŒã§æ©èœããäž»ãªãªãã·ã§ã³ã§ãïŒã
-詳现ïŒgc | stdoutã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ãã®ã³ã°ãæå¹ã«ããŸãã |
-XloggcïŒãã¡ã€ã«å | ã¬ããŒãžã³ã¬ã¯ã·ã§ã³æ
å ±ãèšé²ãããã¡ã€ã«ã®ååãæå®ããŸãã -verboseïŒgcãããåªå
ãããŸã ã |
-XXïŒ+ PrintGCTimeStamps | ã¢ã»ã³ããªæ
å ±ã«ã¿ã€ã ã¹ã¿ã³ããè¿œå ããŸãïŒããã°ã©ã ã®éå§ããçµéããç§æ°ãšããŠïŒã |
-XXïŒ+ PrintGCDetails | ã¬ããŒãžã³ã¬ã¯ã·ã§ã³æ
å ±ã®æ¡åŒµåºåãæå¹ã«ããŸãã |
-XXïŒ+ PrintFlagsFinal | ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšãæ瀺çã«æå®ããããªãã·ã§ã³ãŸãã¯JVMèªäœã«ãã£ãŠèšå®ããããã¹ãŠã®ãªãã·ã§ã³ã®å€ãæšæºåºåã«è¡šç€ºãããŸãã ããã«ã¯ãã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«é¢é£ãããªãã·ã§ã³ãå«ãŸããŸãã å€ãã®å Žåãå²ãåœãŠãããå€ã確èªãããšäŸ¿å©ã§ãã |
ã¢ããªã±ãŒã·ã§ã³ããèªåã§ããŒã¿ãåéããå Žåã¯ãããã«å¯Ÿå¿ããMXBeanã䜿çšã§ããŸãã 以äžã¯ãããŸããŸãªã¡ã¢ãªé åã®çŸåšã®ç¶æ
ãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«é¢ããæ
å ±ã衚瀺ã§ããåçŽãªã¯ã©ã¹ã®äŸã§ããç¬èªã®ç£èŠãéçºããå Žåã¯ããããåºç€ãšããŠäœ¿çšã§ããŸãã
MemoryUtil.javapublic class MemoryUtil { private static final int NORM_NAME_LENGTH = 25; private static final long SIZE_KB = 1024; private static final long SIZE_MB = SIZE_KB * 1024; private static final long SIZE_GB = SIZE_MB * 1024; private static final String SPACES = " "; private static Map<String, MemRegion> memRegions;
å€éšããŒã«
èªç¶çã«ã¯ãJavaããã»ã¹ã«æ¥ç¶ããŠãã¡ã¢ãªããã³ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ããã»ã¹ã®ç¶æ
ã«é¢ããæ
å ±ãç°¡åã«ååŸã§ããããŒã«ãæ°å€ããããŸãã ãããã¯ãVisualGCãã©ã°ã€ã³ïŒVisualGCãã©ã°ã€ã³ãå«ãïŒãšJava Mission ControlãIDEã®ããŸããŸãªããŒã«/ãã©ã°ã€ã³ãJVM HotSpotããã±ãŒãžã«ä»å±ããJProfilerãYourKitãªã©ã®åå¥ã®ããã°ã©ã ã§ãã
ãã䜿ãããããã®ãéžæã§ããŸãããäžèšã®ããã«ãå®éšã¢ããªã±ãŒã·ã§ã³ã§ããŒã«ãšãã®èšå®ãã©ã®ãããªåœ±é¿ãäžãããã確èªããŠãã ããã VisualVMãå®è¡å¯èœã³ãŒãå
šäœãã¡ã€ã³ã¹ã¬ããã®å®è¡ã®äžæåæ¢ã§æ§æãããããã°ã©ã ã®åäœã«ã©ã®ããã«åœ±é¿ãããã®äŸã次ã«ç€ºããŸãã

ãã®æé·ããŠãããã£ãŒããäžéšã«è¡šç€ºããŸããïŒ ããã¯ãç£èŠã«ãã£ãŠãããããã1åãããçŽ8 MBã®ãžã£ã³ã¯ããŒã¿ã§ãã ã³ã¬ã¯ã¿ãã©ã®ããã«æ©èœãããã«ã€ããŠã®äžè¬çãªã¢ã€ãã¢ãå¿
èŠãªå ŽåããŸãã¯ããã°ã©ã ã®1åãããæ°åã¡ã¬ãã€ãã®ããŒã¿ã蚱容枬å®èª€å·®ãããå°ããå ŽåãããŒã«ã®ãã®åäœã¯èš±å®¹ã§ããŸãã ãã ãã埮調æŽãè¡ããã¢ã«ãŠã³ãã«ãã¹ãŠã®ã¡ã¬ãã€ããããå Žåã¯ãé£ãããåã®ãããªãã®ãéžæããªãã»ããããã§ãããã
çæ³çã«ã¯ãããŒã«ã¯æ¬¡ã®ãããªprogramç¡ç¶æ
ã®ããã°ã©ã ã§ã¡ã¢ãªäœ¿çšéã®ã°ã©ãã衚瀺ããå¿
èŠããããŸãã
ãªãã·ã§ã³ãšããŠãäžèšã®å
éšç£èŠããŒã«ã«æ³šæããŠãã ããããããã¯æåã¯è»œéã§ãããé«åºŠãªæ©èœãè¿œå ããå¿
èŠãããå Žåã¯ãèªåã§å€§é£ãã«åœ±é¿ãäžããããšãã§ããŸãã
ã¿ããªèŠããŸããïŒ
ããŠãããªãã¯ãã®å Žæã«çããåã®ãã©ã°ã©ãã®æãããªãã®ã®é·ããªã¹ãã«ãã£ãŠããæ¢ããããªãã£ãã®ã§ãããªãã¯æ¬åœã«èå³ãããã¯ãã§ãã 次ã«ãHotSpotãããã«æäŸãããã®ãèŠãŠã¿ãŸãããã
æ¢ã«è¿°ã¹ãããã«ãäžèšã®ã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã®ååã¯ãã¹ãŠã®ã³ã¬ã¯ã¿ãŒã«å
±éã§ãã ããããåæã«ãã³ã¬ã¯ã¿ãŒã®éã«ã¯é¡èãªéããããã次ã®è³ªåãžã®åçã«çŸããŠããŸãã
- 䜿çšãããããŒãé åã®æ°ããã®ç®çãšãµã€ãºã¯ïŒ ãããã®ãµã€ãºã¯åçã«ã©ã®ããã«å€åããŸããïŒ
- è¥ãäžä»£ããå€ãäžä»£ãžã®ãªããžã§ã¯ãã®è»¢éã¯ã©ãã§ããïŒ
- ã¡ã€ã³ããã°ã©ã ã®äœæ¥ãšäžŠè¡ããŠå®è¡ãããã¬ãŒãããžã³ã¬ã¯ã·ã§ã³ã®äœæ¥ãšããããåæ¢ãããã¬ãŒãããžã³ã¬ã¯ã·ã§ã³ã®äœæ¥ã¯ã©ãã§ããïŒ
- ã¬ããŒãžã³ã¬ã¯ã¿ã¯ãå¿
èŠãªããã©ãŒãã³ã¹ãã©ã¡ãŒã¿ã«ã©ã®ããã«èªåçã«èª¿æŽããŸããïŒ ã©ã¡ããåªå
ãããŸããïŒ
- ã³ã¬ã¯ã¿ãŒãæ§æããããã®ãªãã·ã§ã³ã¯äœã§ããïŒ
Java HotSpot VMã¯ãéçºè
ã«4ã€ã®ç°ãªãã¬ããŒãžã³ã¬ã¯ã¿ãŒã®éžæè¢ãæäŸããŸãã
ã·ãªã¢ã«ã¯ãå°éã®ããŒã¿ãšäœé
延ã®èŠä»¶ãæã€ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠæãç°¡åãªãªãã·ã§ã³ã§ãã ãŸãã«äœ¿çšãããŸããã匱ãã³ã³ãã¥ãŒã¿ãŒã§ã¯ãä»®æ³ãã·ã³ãããã©ã«ãã³ã¬ã¯ã¿ãŒãšããŠéžæã§ããŸãã
䞊åïŒäžŠåïŒ -ã·ãªã¢ã«ã³ã¬ã¯ã¿ãŒããã¢ã»ã³ããªã¢ãããŒããç¶æ¿ããŸãããäžéšã®æäœã«äžŠåæ§ãè¿œå ããå¿
èŠãªããã©ãŒãã³ã¹ãã©ã¡ãŒã¿ãŒã«èªåçã«èª¿æŽããæ©èœãè¿œå ããŸãã
åæããŒã¯ã¹ã€ãŒãïŒCMSïŒ -ã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ã¹ã¬ãããšäžŠè¡ããŠã¬ããŒãžã³ã¬ã¯ã·ã§ã³äœæ¥ã®äžéšãå®è¡ããããšã«ãããæ倧é
延ãåæžããããšãç®çãšããŠããŸãã ã¡ã¢ãªå
ã®æ¯èŒç倧éã®ããŒã¿ãæ±ãã®ã«é©ããŠããŸãã
Garbage-FirstïŒG1ïŒ -ç¹ã«ãã«ãããã»ããµãµãŒããŒã§å®è¡ããã倧éã®ããŒã¿ã§åäœãããµãŒããŒã¢ããªã±ãŒã·ã§ã³ã§ãCMSãåŸã
ã«çœ®ãæããããã«äœæãããŸãã
次ã®èšäºã§ã¯ããããã®åã³ã¬ã¯ã¿ãŒã詳现ã«æ€èšããäžè¬çãªèšç»ãé å®ããããšããŸãïŒç°¡åãªèª¬æãä»äºã®ååãSTWã®ç¶æ³ïŒãããå¿ããŠããŸã£ãå Žåãããã¯äžçãæ¢ããŸãïŒãæ§ææ¹æ³ãé·æãšçæã ãã®ç¥èãåãåã£ãåŸãç§ãã¡ã¯å®éã®ç掻ã§ããããã©ãããããèŠãŸãã
ããŒã2-ã·ãªã¢ã«GCããã³ãã©ã¬ã«GCã³ã¬ã¯ã¿ãŒâããŒã3-CMS GCããã³G1 GCã³ã¬ã¯ã¿ãŒâ