Méthodologie de benchmark
Cette page explique comment fonctionnent les benchmarks VoxelBench, comment obtenir des résultats fiables et reproductibles, et quels facteurs influencent votre score.
Le processus de benchmark
Un benchmark VoxelBench exécute 14 tests automatisés sur votre serveur Minecraft, couvrant trois domaines :
- Performance monocœur — La rapidité de votre CPU sur le thread principal de Minecraft
- Matériel — Capacités brutes de mémoire, disque et multicœur
- Stress gameplay — Comment le serveur se comporte sous des charges réelles Minecraft
Le plugin orchestre tous les tests automatiquement. Vous lancez le benchmark, et le plugin gère le reste : spawn d'entités, chargement de chunks, activation de redstone, déclenchement d'explosions, etc.
Durée du test
Un benchmark complet prend 5 à 40 minutes selon les performances de votre serveur. Les serveurs plus rapides terminent les tests plus vite — c'est en soi un indicateur de performance intégré au score.
Préparer un benchmark fiable
Obtenir des résultats cohérents et comparables nécessite de contrôler l'environnement de test.
Configuration du serveur
Version Minecraft
- Utilisez une version stable (pas de snapshots ni pre-releases)
- La même version Minecraft doit être utilisée pour comparer les résultats
- Les versions plus récentes peuvent avoir des caractéristiques de performance différentes
Logiciel serveur
- Paper est recommandé pour les résultats les plus optimisés
- Spigot, Purpur et Folia sont supportés
- Dans les tests officiels, Spigot sera utilisé pour éviter les biais liés aux optimisations de Paper
Version Java
- Utilisez Java 21 (LTS) ou plus récent
- Java 17 fonctionne mais Java 21 a des améliorations de performance mesurables
- Évitez Java 8 — il manque les algorithmes GC modernes et les optimisations
Arguments JVM (critique)
La configuration du garbage collector a un impact majeur sur les résultats :
- Les flags d'Aikar sont la base recommandée pour la plupart des serveurs
- ZGC (
-XX:+UseZGC) produit des temps de pause GC très bas mais peut utiliser plus de mémoire - G1GC (défaut avec les flags d'Aikar) est un bon équilibre entre débit et latence
- Évitez les flags JVM par défaut sans tuning — ils mènent à de longues pauses GC qui pénalisent directement votre score
Points clés à vérifier :
-Xmset-Xmxdoivent être égaux (empêche le redimensionnement du heap pendant les tests)- Allouez assez de RAM pour les tests (8 Go minimum recommandé, 10-12 Go idéal)
- Ne sur-allouez pas (32 Go pour un serveur de test gaspille de la mémoire et peut augmenter les pauses GC)
Environnement
Aucun joueur
- Lancez les benchmarks avec zéro joueur en ligne
- L'activité des joueurs crée une charge imprévisible qui varie entre les exécutions
- Même les joueurs AFK génèrent des ticks de chunks et des interactions d'entités
Pas d'autres plugins (idéal)
- Pour la comparaison matérielle la plus précise, testez avec uniquement le plugin VoxelBench
- Si vous devez tester votre configuration de production, comprenez que les autres plugins ajoutent de la charge
- Les plugins anticheat en particulier peuvent interférer avec les tests de spawn d'entités et de physique
Ressources dédiées
- Fermez les autres applications sur la machine (ou VM/conteneur)
- Sur l'hébergement mutualisé : les serveurs des autres clients affectent vos résultats
- Le throttling CPU (modes d'économie d'énergie, throttling thermique) produira des résultats incohérents
- Si possible, lancez le benchmark pendant les heures creuses de la machine hôte
État du monde
- Utilisez un monde vierge ou avec un minimum de constructions
- Les grands mondes existants ajoutent de la charge au tick des chunks et aux tests de sauvegarde
- Le plugin crée ses propres zones de test, mais les chunks chargés existants consomment des ressources
- Les tests officiels utilisent un monde plat avec le seed "benchmark"
Réseau
- La latence réseau n'affecte pas le score (toutes les mesures sont côté serveur)
- Cependant, la connexion entre le plugin et les serveurs VoxelBench doit être stable pour la soumission
Ce qui rend les résultats comparables
Deux benchmarks sont directement comparables quand :
| Facteur | Doit correspondre | Pourquoi |
|---|---|---|
| Version Minecraft | Oui | Les performances varient significativement |
| Logiciel serveur | Oui | Paper vs Spigot ont des niveaux d'optimisation différents |
| Version Java | Idéalement | Java 21 vs 17 peut montrer 5-15% de différence |
| Flags JVM / GC | Idéalement | La stratégie GC affecte les pauses et la stabilité MSPT |
| Allocation RAM | Similaire | Trop peu = pression mémoire, trop = pauses GC plus longues |
| Nombre de joueurs | Oui (0) | Les joueurs ajoutent une charge variable |
| Plugins installés | Idéalement | Chaque plugin ajoute une charge de base |
Comparaison d'hébergeurs
Quand nous benchmarkons les hébergeurs sur la page Comparaison d'hébergeurs :
- Même JAR serveur — Version et build Paper identiques
- Même version Java — Même distribution et version JDK
- Mêmes flags JVM — Arguments de démarrage identiques
- Même monde — Monde vierge, pas de constructions, seed "benchmark"
- Mêmes plugins — Plugin VoxelBench uniquement
- Même configuration — server.properties et config Spigot par défaut
- Plusieurs exécutions — Plusieurs benchmarks par hébergeur pour tenir compte de la variance
- Horaires différents — Tests à différents moments de la journée pour détecter la contention de ressources
Cela garantit que la seule variable est l'infrastructure d'hébergement elle-même.
Facteurs qui nuisent à votre score
| Facteur | Impact | Comment corriger |
|---|---|---|
| Longues pauses GC (>100ms) | Forte pénalité stabilité | Tuner les flags JVM, utiliser ZGC ou G1GC |
| MSPT élevé (>50ms) | Réduit directement le score monocœur | Meilleur CPU, moins de plugins |
| TPS incohérent entre tests | Pénalité de validation croisée | Vérifier les tâches de fond |
| Tests échoués | -8% par test échoué (max -40%) | Assez de RAM, pas d'interférence |
| Complétion lente (>20 min) | Pénalité de durée | Meilleur matériel |
| Haute variance TPS | Pénalité de stabilité | Charge constante, pas de throttling |
| E/S disque lentes | Réduit le score matériel | SSD vs HDD, NVMe vs SATA |
Facteurs qui n'affectent PAS votre score
| Facteur | Pourquoi |
|---|---|
| Latence réseau / ping | Toutes les mesures sont côté serveur |
| Nombre de mondes | Les tests utilisent leurs propres zones |
| Uptime du serveur avant le test | Les tests sont autonomes |
| Heure de la journée (sauf mutualisé) | Les mesures sont relatives |
| Système d'exploitation (en général) | Java abstrait la plupart des différences OS |