Javaヘルプに記載されているように、同じ-Xmsと-Xmxを使用してJavaプロセスを開始することについてあなたの意見を尋ねたいと思います。
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
内部にJava VMパフォーマンスのヒント/ガイド-Xmsの提案があります。
「Oracleでは、ガベージコレクションを最小限に抑えるために、最小ヒープサイズ(-Xms)を最大ヒープサイズ(-Xmx)に等しく設定することをお勧めします。
テストのために、64 GBのRAMを搭載したシステムで-Xms50gと-Xmx50gを使用してJavaプロセスを開始しました。
無料出力の「使用済み」値が50 GBまで増加すると予想されるべきですか?成長しないと思いますか?それとも長いプロセスですか?
$ while true;do free|grep ^Mem;sleep 1;done|ts '[%Y-%m-%d %H:%M:%S]'
[2018-12-01 22:03:08] Mem: 65808916 3345712 56556376 14556 5906828 61863688
[2018-12-01 22:03:09] Mem: 65808916 3347912 56554168 14556 5906836 61861484
[2018-12-01 22:03:10] Mem: 65808916 3347776 56554292 14556 5906848 61861608
[2018-12-01 22:03:11] Mem: 65808916 3348008 56554060 14556 5906848 61861376
[2018-12-01 22:03:12] Mem: 65808916 3347780 56554284 14556 5906852 61861600
[2018-12-01 22:03:13] Mem: 65808916 3348112 56553944 14556 5906860 61861260
[2018-12-01 22:03:14] Mem: 65808916 3347976 56554076 14556 5906864 61861392
[2018-12-01 22:03:15] Mem: 65808916 3347636 56554416 14556 5906864 61861736
-Xms/-Xmxをそのような大きな値に設定すると、どのような利点/欠点がありますか?
答え1
プロセスにその量が必要な場合は、制限を超えてGCを試してヒープを増やすよりも、すぐに予約する方が高速です。