Rapport de benchmark
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 20 | 1,502 | 20.0 | 15.0 | 5.9 | 15 | OK |
| 21 | 3,345 | 20.0 | 20.0 | 11.4 | 17 | Échec |
| 21 | 3,345 | 19.3 | 15.0 | 11.3 | 16 | Échec |
| 21 | 2,423 | 20.0 | 20.0 | 8.6 | 13 | R1 OK |
| 21 | 2,884 | 19.9 | 15.0 | 9.7 | 15 | R2 Échec |
| 21 | 2,884 | 19.9 | 14.6 | 9.9 | 14 | R2 Échec |
| 21 | 2,653 | 20.0 | 20.0 | 9.2 | 14 | R3 Échec |
| 21 | 2,653 | 18.7 | 10.0 | 9.1 | 13 | R3 Échec |
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 18 | 1,374 | 19.9 | 15.0 | 34.6 | 43 | OK |
| 19 | 1,835 | 19.9 | 15.0 | 45.7 | 50 | OK |
| 20 | 2,182 | 18.4 | 15.0 | 53.7 | 67 | Échec |
| 20 | 2,182 | 18.9 | 15.0 | 52.7 | 59 | Échec |
| 20 | 2,008 | 19.4 | 15.0 | 50.8 | 57 | R1 OK |
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 10 | 6,754 | 20.0 | 20.0 | 23.0 | 25 | OK |
| 11 | 10,852 | 19.2 | 15.0 | 43.2 | 47 | OK |
| 12 | 13,155 | 14.6 | 5.0 | 77.6 | 179 | Échec |
| 12 | 13,155 | 15.1 | 5.0 | 71.8 | 157 | Échec |
| 12 | 12,003 | 15.2 | 10.0 | 66.5 | 138 | R1 Échec |
| 12 | 12,003 | 15.3 | 10.0 | 66.2 | 132 | R1 Échec |
| 12 | 11,427 | 15.4 | 5.5 | 63.2 | 152 | R2 Échec |
| 12 | 11,427 | 15.4 | 10.0 | 61.9 | 114 | R2 Échec |
| 12 | 11,139 | 16.1 | 10.0 | 57.1 | 126 | R3 Échec |
| 12 | 11,139 | 15.8 | 9.1 | 56.7 | 132 | R3 Échec |
| 12 | 10,995 | 15.7 | 10.0 | 57.9 | 117 | R4 Échec |
| 12 | 10,995 | 15.8 | 10.0 | 56.3 | 114 | R4 Échec |
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 11 | 2,817 | 17.9 | 5.0 | 53.9 | 226 | Échec |
| 11 | 2,817 | 19.0 | 15.0 | 44.9 | 64 | OK |
| 12 | 3,368 | 17.3 | 10.0 | 54.6 | 77 | Échec |
| 12 | 3,368 | 17.8 | 10.0 | 51.8 | 72 | Échec |
| 12 | 3,092 | 19.1 | 15.0 | 43.5 | 67 | R1 OK |
| 12 | 3,230 | 18.7 | 9.9 | 45.5 | 78 | R2 OK |
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 0 | 8 | 19.9 | 15.0 | 1.0 | 1 | Ignoré |
| 1 | 18 | 20.0 | 20.0 | 1.4 | 3 | Ignoré |
| 2 | 44 | 20.0 | 20.0 | 1.8 | 3 | Ignoré |
| 3 | 159 | 20.0 | 20.0 | 3.7 | 8 | Ignoré |
| 4 | 831 | 19.8 | 14.7 | 6.2 | 17 | Ignoré |
| 5 | 4,000 | 19.9 | 14.7 | 23.9 | 27 | OK |
| 6 | 6,328 | 19.8 | 12.2 | 24.3 | 37 | OK |
| 7 | 9,939 | 19.7 | 13.1 | 23.5 | 26 | OK |
| 8 | 10,000 | 0.0 | 0.0 | 0.0 | 0 | Ignoré |
| 8 | 10,000 | 19.4 | 10.0 | 23.5 | 26 | OK |
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 29 | 1,025 | 20.0 | 20.0 | 17.6 | 28 | OK |
| 30 | 1,819 | 17.2 | 10.0 | 30.4 | 96 | Échec |
| 30 | 1,819 | 17.4 | 5.0 | 27.5 | 63 | Échec |
| 30 | 1,422 | 18.1 | 5.0 | 30.5 | 247 | R1 OK |
| 30 | 1,620 | 19.8 | 10.0 | 26.0 | 63 | R2 OK |
| # | Charge | TPS moy | TPS min | MSPT moy | MSPT max | Statut |
|---|---|---|---|---|---|---|
| 0 | 100 | 20.0 | 20.0 | 1.0 | 7 | OK |
| 1 | 245 | 20.0 | 20.0 | 1.1 | 4 | OK |
| 2 | 600 | 19.9 | 15.0 | 1.2 | 10 | OK |
| 3 | 2,075 | 20.0 | 20.0 | 2.1 | 30 | OK |
| 4 | 10,000 | 19.1 | 15.0 | 1.1 | 2 | OK |
| 5 | 15,635 | 19.8 | 10.0 | 2.4 | 70 | OK |
| 6 | 25,000 | 19.6 | 10.0 | 3.2 | 107 | OK |
Ce qu’il faut retenir
Tiré des mesures, jamais estiméConfiguration serveur modifiée
Comparez avec prudence à un serveur réglé par défaut.
- view-distance 18 (défaut 10)
- simulation-distance 4 (défaut 10)
- spawn-limit.monster 60 (défaut 70)
+5 autres réglages modifiés
Ligne de démarrage Java
Les options avec lesquelles ce serveur a démarré, vérifiées pour sa version de Java. Les corrections réparent ce qui est faux à coup sûr ; les pistes à tester sont des réglages à mesurer, jamais appliqués à votre place.
Ligne actuelle (25 arguments)
Les valeurs des propriétés système, des agents et des chemins de fichiers ne sont jamais affichées : elles apparaissent comme <redacted>.
-Xms128M -XX:MaxRAMPercentage=78.0 -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -Duser.timezone=America/Chicago -Dterminal.jline=false -Dterminal.ansi=true
Rien à corriger : chaque option est valable pour Java 25.
À tester
Des réglages de performance à essayer un par un, puis à mesurer par un banc avant et après. Aucun n'est appliqué dans la ligne corrigée, et aucun ne vient avec un gain promis.
Des réglages documentés par PaperMC pour les serveurs Minecraft : ils dimensionnent la jeune génération de G1 pour le rythme d'allocation très élevé du jeu et déclenchent les collectes plus tôt. Tas initial et maximal à la même taille, avec AlwaysPreTouch, engagent tout le tas au démarrage : proposés seulement parce que ce tas reste déjà sous la limite mémoire.
-Xms13424M -Xmx13424MAucune mesure de ce run ne la désigne : elle reste une piste à mesurer.
sourceUn ramasse-miettes aux pauses très courtes pour les gros tas, au prix de plus de processeur et de mémoire. Il remplace le ramasse-miettes actuel : retirez l'option qui le choisit et ses propres réglages, puis mesurez. À partir de Java 23, le mode générationnel est celui par défaut.
-XX:+UseZGCAucune mesure de ce run ne la désigne : elle reste une piste à mesurer.
sourceRelancer et comparer
- Appliquez la ligne corrigée là où votre serveur démarre (paramètres de démarrage du panneau, start.sh).
- Redémarrez le serveur.
- Lancez un nouveau banc :
/bench start - Comparez le nouveau rapport avec celui-ci.
Ce rapport est l'avant ; ajoutez le nouveau rapport à la comparaison quand il sera là. Un seul run de chaque côté dit peu de chose : l'écart entre deux runs d'un serveur inchangé est du bruit.
Toutes les mesures
Chaque test en entier. Les tests en difficulté sont ouverts ; les autres se replient sur leur ligne de résumé.
Optionnel
Chunks19,40 TPS23,5 ms92.1s
Maximum chunks loaded simultaneously before TPS drops
Données brutes (4 champs)
Collisions19,21 TPS43,2 ms226.9s
Maximum entity collisions before TPS drops below threshold
Données brutes (4 champs)
Hoppers19,76 TPS26,0 ms135.1s
Maximum hopper lines before TPS drops below threshold
Données brutes (5 champs)
Mobs18,70 TPS45,5 ms102.5s
Maximum mob AI entities before TPS drops below threshold
Données brutes (4 champs)
Redstone19,59 TPS3,2 ms116.9s
Maximum redstone circuits before TPS drops below threshold
Données brutes (4 champs)
Explosions20,00 TPS8,6 ms229.8s
Maximum TNT explosions before TPS drops below threshold
Données brutes (6 champs)
Villageois19,44 TPS50,8 ms80.9s
Maximum villager AI brains before TPS drops below threshold