JVM Flags prüfen #8

Closed
opened 2025-12-01 13:34:19 +01:00 by yamayaki · 2 comments
Owner

Aktuell verwenden wir:
-XX:MaxRAM=48G -XX:MaxRAMPercentage=95 -XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational -XX:-DontCompileHugeMethods -XX:+UseVectorCmov -XX:+UseCMoveUnconditionally -XX:+UseFMA -XX:+OptimizeStringConcat -XX:+UseCompactObjectHeaders -Djava.net.preferIPv6Addresses=true -Xlog:gc*=debug:file=/home/container/gc.log --enable-native-access=ALL-UNNAMED -jar {{SERVER_JARFILE}}

Es sollte geprüft werden, welche für den Betrieb des Servers überhaupt benötigt werden. Dafür eignet sich folgender Guide:
https://exa.y2k.diy/garden/jvm-args/

Aktuell verwenden wir: `-XX:MaxRAM=48G -XX:MaxRAMPercentage=95 -XX:+UseShenandoahGC -XX:ShenandoahGCMode=generational -XX:-DontCompileHugeMethods -XX:+UseVectorCmov -XX:+UseCMoveUnconditionally -XX:+UseFMA -XX:+OptimizeStringConcat -XX:+UseCompactObjectHeaders -Djava.net.preferIPv6Addresses=true -Xlog:gc*=debug:file=/home/container/gc.log --enable-native-access=ALL-UNNAMED -jar {{SERVER_JARFILE}}` Es sollte geprüft werden, welche für den Betrieb des Servers überhaupt benötigt werden. Dafür eignet sich folgender Guide: https://exa.y2k.diy/garden/jvm-args/
Author
Owner

Sowohl Shenandoah als auch ZGC als Garbage Collector haben jetzt einen 'Generational' Modus (bzw. der einzige in ZGC). Jetzt bleibt nur noch die Frage offen, welcher besser geeignet ist für Serveranwendungen mit vielen short-lived Objects, wie sie in Minecraft vorzufinden sind.

Vielleicht gibt es hierfür entsprechende Benchmarks.

Sowohl Shenandoah als auch ZGC als Garbage Collector haben jetzt einen 'Generational' Modus (bzw. der einzige in ZGC). Jetzt bleibt nur noch die Frage offen, welcher besser geeignet ist für Serveranwendungen mit vielen short-lived Objects, wie sie in Minecraft vorzufinden sind. Vielleicht gibt es hierfür entsprechende Benchmarks.
Author
Owner

Die neuen JVM-Flags sind:

-Xms32G -Xmx32G -XX:+UseZGC -XX:-DontCompileHugeMethods -XX:+UseCompactObjectHeaders -Djava.net.preferIPv6Addresses=true --enable-native-access=ALL-UNNAMED -jar {{SERVER_JARFILE}}

Die wichtigsten Argumente beeinflussen:

  • Generational ZGC als Garbage Collector anstelle von G
  • JIT-Compiler zu zwingen, große Methoden zu kompilieren
  • Kompakte Objekt-Header für kompakteren Heap und weniger CPU-Zeit
  • preferIPv6Addresses um IPv6 IPv4 vorzuziehen.
  • Zugang zum neuen FFI Modul für alle Bibliotheken freizuschalten (Unterdrückt Warnung)
Die neuen JVM-Flags sind: > `-Xms32G -Xmx32G -XX:+UseZGC -XX:-DontCompileHugeMethods -XX:+UseCompactObjectHeaders -Djava.net.preferIPv6Addresses=true --enable-native-access=ALL-UNNAMED -jar {{SERVER_JARFILE}}` Die wichtigsten Argumente beeinflussen: - [Generational ZGC](https://openjdk.org/jeps/439) als Garbage Collector anstelle von G - JIT-Compiler zu zwingen, große Methoden zu kompilieren - [Kompakte Objekt-Header](https://openjdk.org/jeps/519) für kompakteren Heap und weniger CPU-Zeit - [preferIPv6Addresses](https://docs.oracle.com/javase/8/docs/api/java/net/doc-files/net-properties.html) um IPv6 IPv4 vorzuziehen. - Zugang zum neuen FFI Modul für alle Bibliotheken freizuschalten (Unterdrückt Warnung)
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
siktus-treff/bauangriff#8
No description provided.