CentOS8
Java11
Ryzen7 3700X
Ram 32GB
GTX1660SUPER
nvme ssd 500GB
現状。UseShenandoahGCを使いたいがためにLinuxを入れたと言って過言ではない。(openJDKで配られている奴には入ってないCentOSのRedHat系はdnfでinstallできるやつに入ってる、すごいGCらしい) i7-6700k-ram16GB-GTX1070に較べてパフォーマンスが変わったかというと数瞬した程度ではよくわからない。もうちょっと試す。。。
正直チャンクアップデートのスパイクの方をなんとかしないといけないのだけれど、GCじゃどうにもならんかな。
-Xmx16G -Xms8G -server -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UseNUMA -XX:MaxGCPauseMillis=20 -XX:+DisableExplicitGC -XX:+UseAdaptiveGCBoundary -XX:+UseBiasedLocking -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:ReservedCodeCacheSize=2G -XX:+UseCodeCacheFlushing -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true
ref: vmoptions
https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html
2022-0507 win向け(RAM48GB
-Xmx16G -Xms16G -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+AlwaysPreTouch -XX:+UseNUMA -XX:+UseLargePages -XX:MaxGCPauseMillis=20 -XX:+DisableExplicitGC -XX:+OptimizeStringConcat -XX:ReservedCodeCacheSize=2G
2022-04-23 win向け(RAM16g
-Xmx4G -Xms4G -server -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+UseNUMA -XX:MaxGCPauseMillis=20 -XX:+DisableExplicitGC -XX:+OptimizeStringConcat
ps.windows側からバックアップを取るスクリプト(git bash 使用
."C:\path\to\git-bash.exe" -c "scp -P 51234 -i /C/path/to/.ssh/id_rsa -r username@ipaddr:/path/to/saves/world/ /path/to/tmp_save/ | .Robocopy.exe I:\path\to\tmp_save C:\path\to\OneDrive\minecraft_linux_save -E -MIR"
ポイント:robocopyのオプションを / -> -
試したいこと
https://wiki.openjdk.java.net/display/shenandoah/Main
adaptive (default). This heuristics observes the previous GC cycles, and tries to start the next GC cycle so that it could complete before heap is exhausted
-XX:ShenandoahInitFreeThreshold=#: Initial threshold at which to trigger "learning" collections
-XX:ShenandoahMinFreeThreshold=#: free space threshold at which heuristics triggers the GC unconditionally
-XX:ShenandoahAllocSpikeFactor=#: How much heap to reserve for absorbing allocation spikes
-XX:ShenandoahGarbageThreshold=#: Sets the percentage of garbage a region need to contain before it can be marked for collection.
for win
-Xmx8G -Xms8G -server -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+UseNUMA -XX:MaxGCPauseMillis=20 -XX:+DisableExplicitGC -XX:+UseAdaptiveGCBoundary -XX:+UseBiasedLocking -XX:+UseCompressedOops -XX:+OptimizeStringConcat -XX:ReservedCodeCacheSize=2G -XX:+UseCodeCacheFlushing -Dfml.ignorePatchDiscrepancies=true -Dfml.ignoreInvalidMinecraftCertificates=true