JDK8(Linux 64bit)ã®ããã©ã«ããã¼ããµã¤ãº
Oracleã®å ¬å¼ããã¥ã¡ã³ãã«ã¯ã-Xmxãæªæå®ã§ãã£ãå ´åã®ã¨ã«ã´ããã¯ã¹ã«ããæå¤§ãã¼ããµã¤ãºã¯ã32GBãä¸éã¨ãã¦ãç©çã¡ã¢ãªã®4åã®1ãæ¸ããã¦ããã32GBã¯-XX:-UseCompressedOopsã«ããå§ç¸®Oopãæç¤ºçã«ç¡å¹ã«ããå ´åã®æå¤§ããã©ã«ããã¼ããµã¤ãºã§ãä½ããªãã·ã§ã³ãä»ããã«èµ·åããå ´åã¯29GBãä¸éã
ãã¼ããµã¤ãºã®æ±ºå®ã¯arguments.cppã®Arguments::set_heap_size()ã§è¨ç®ããã¦ãããããã©ã«ãã®æå¤§ããã³åæãã¼ããµã¤ãºã¯ãç©çã¡ã¢ãªéã«ããç°ãªãã
ããã©ã«ãæå¤§ãã¼ããµã¤ãº(-Xmx)
ç©çã¡ã¢ãªã248MB以ä¸ã®å ´å
ç©çã¡ã¢ãªã®2åã®1ã
248MBã¯-XX:MaxHeapSize(ããã©ã«ã124MB) x -XX:MinRAMFraction(ããã©ã«ã2)
ã®å¤ã
ç©çã¡ã¢ãªã248MBãã大ããå ´å
ç©çã¡ã¢ãªã®4åã®1ã
4åã®1ã¨ããã®ã¯-XX:MaxRAMFraction(ããã©ã«ã4)ã®å¤ãä¾ãã°ä»¥ä¸ã®ãããªãªãã·ã§ã³ãæå®ããå ´åã¯ãç©çã¡ã¢ãªã®8åã®1ãã¨ã«ã´ããã¯ã¹ã§æ±ºããããæå¤§ãã¼ããµã¤ãºã¨ãããã¨ãå¯è½ã
java -XX:MaxRAMFraction=8 ...
ä¸éå¤ã¯ãããã©ã«ãã§29GBãããã©ã«ãæå¹åããã¦ããOopå§ç¸®ã-XX:-UseCompressedOopsã§æç¤ºçã«ç¡å¹åãã¦ããç¶æ³ã§ã¯32GBã
ãã®29GBã¯ãåãargument.cppã«ããmax_heap_for_compressed_oops()ã§è¨ç®ãããOopå§ç¸®æå¹æã®æå¤§ãã¼ããµã¤ãº(æå ã®ç°å¢ã§ã¯34357641216B/31GB)ããã-XX:HeapBaseMinAddress(Linuxã¯ããã©ã«ã2GB)ãå¼ããå¤ã
ããã©ã«ãåæãã¼ããµã¤ãº(-Xms)
ç©çã¡ã¢ãªã384MB以ä¸ã®å ´å
6MBã
ç©çã¡ã¢ãªã®64åã®1ã®å¤ã-XX:OldSize(ããã©ã«ã5MB) + -XX:NewSize(ããã©ã«ã1MB)
ã®6MBãä¸åãå ´åã¯ãåæãã¼ããµã¤ãºã¯6MBã«è¨å®ãããã
ç©çã¡ã¢ãªã384MBãã大ããå ´å
ç©çã¡ã¢ãªã®64åã®1ã
MaxRAMFractionã¨åæ§ã«ã以ä¸ã®ããã«ãªãã·ã§ã³-XX:InitialRAMFractionãè¨å®ããã¨ãç©çã¡ã¢ãªã®8åã®1ãã¨ã«ã´ããã¯ã¹ã§æ±ºããããåæãã¼ããµã¤ãºã«ãããã¨ãå¯è½ã
java -XX:InitialRAMFraction=8 ...
ããã¾ã§ã®å 容ãè¸ã¾ãã¦ãä¾ãã°ç©çã¡ã¢ãª32GBã®å ´åãä½ããªãã·ã§ã³ãæå®ããªãã¨ä»¥ä¸ã¨åçã§ããæã£ãããæå¤§ãã¼ããµã¤ãºã大ãããªã¨æãæ¹ãå¤ãã¨æãã¾ãã
java -Xms512m -Xmx8g ...
ã¾ã¨ã
64bitJVMã®ã¨ã«ã´ããã¯ã¹ã®æåã¯ãç©çã¡ã¢ãª128GBã¾ã§ã¯ç©ãã»ã©æå¤§ãã¼ããµã¤ãºã大ãããªãã¾ããWebãµã¼ããDBã¯ãã¡ã¢ãªãç©ãã»ã©åä½ã軽快ã«ãªããã¨ãå¤ãã§ããããããJavaã«éã£ã¦ã¯-Xms -Xmxãè¨å®ããã¦ããªãã¨ã4å¤é以ä¸ã®Javaããã»ã¹èµ·åã«ããã¹ã¯ãããåºç¶ãããããªãã¨ãèµ·ããå¾ã¾ãã
ç¹ã«ãããã¿ã¹ã¯ã®ããã«ã並è¡ã§å¤æ°JVMãèµ·åãããå ´åã¯æ³¨æãå¿ è¦ã§ãã