JavaVMチューニング

ども、uniunixでっす。

今回はマインクラフトのJavaVMチューニングの難しいお話なんで、分からない人関係ない人はこのページをそっ閉じでよろしこ(笑)

ネオユニsurvivalサーバのパフォーマンスを上げようとしてサーバサイドのJavaVMのチューニングやってるけど、深入りすると色々忘れるわ間違えるわで頭おかしくなってきたんで、記録しようかと。

間違ってたり改善できそうなポイントあれば誰かコメントで教えて!(切実

前提

まずネオユニsurvivalサーバの前提は次の通り。

・CentOS7
openjdk version “13.0.1”
・spigot利用
・BungeeCord利用

あんまり詳細に書きすぎると攻撃対象にされるのでまぁこんなもんでいいかと。
あと、「なんでopenjdk13使ってんのぉ?んおぉ?」と思う方もいるかもしれないが、運用してる俺自身もなんでこのバージョンなのかはわからんw

ただ、G1GCのGC改善が良きとのことだったので興味本位に導入しました、てへ♪←

ということで、このページで説明するJVMオプションはバージョンが13基準なんで、12以下、14以上のバージョンで動作するかどうかは知らん。
8では使えなかったと思ふ。

現在のオプション指定は次の通り。

java -server -Xmx8G -Xms8G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:G1NewSizePercent=20 -XX:G1MaxNewSizePercent=60 -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M -XX:+UseCompressedOops -XX:CompressedClassSpaceSize=512M -XX:G1HeapRegionSize=32M -XX:ParallelGCThreads=6 -XX:ConcGCThreads=2 -Xlog:gc*=info:file=/micrabk/log/gc_%t.log:time,uptime,level,tags:filecount=30,filesize=50M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/heapdump/ -jar spigot-1.15.1.jar nogui


それでは各オプション詳細メモ。

基本オプション

-Xmx8G
-Xms8G
+UnlockExperimentalVMOptions

G1GCオプション

-XX:+UseG1GC
-XX:MaxGCPauseMillis=50
-XX:G1NewSizePercent=60
-XX:G1MaxNewSizePercent=60
-XX:ParallelGCThreads=6
-XX:ConcGCThreads=4
-XX:G1HeapRegionSize=32M

その他オプション

-XX:MetaspaceSize=512M
-XX:MaxMetaspaceSize=512M
-XX:+UseCompressedOops
-XX:CompressedClassSpaceSize=512M
-Xlog:gc*=info:file=/aaa/bbb/ccc_%t.log:time,uptime,level,tags:filecount=30,filesize=50M
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/aaa/bbb/ddd

最後に

これで自分自身今後忘れてもここで確認すれば思い出すやろう。。。

ちなみにuniunixのマイクラプレイヤーサイドのJVMオプション設定は次の通り。

-Xmx8G -Xms8G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M

まぁここら辺はそんなに気にしなくても良いかも。
PCにメモリを24GB積んでるんで、-Xmx8G -Xms8Gの部分は -Xmx16G -Xms16Gでも良いんかもしれん。


コメント

タイトルとURLをコピーしました