SSD Nodes Learn Hosting plans →
Guides Matt ConnorPar Matt Connor · Mis à jour le 2026-10-16

Comment choisir un VPS pour serveur de jeu

Découvrez les besoins réels d’un VPS de jeu : fréquence d’un cœur CPU, RAM, ports, redémarrages systemd, sauvegardes et latence liée à la localisation.

De quel type de VPS de gaming parlez-vous ?

Un VPS pour héberger des serveurs de jeu est un bon choix pour un usage précis : exécuter un serveur dédié auquel vous et vos amis vous connectez depuis vos propres machines. En revanche, c’est un mauvais choix pour l’autre usage associé à cette expression : jouer au jeu directement sur le VPS via un bureau à distance. Ces deux usages nécessitent un matériel opposé. Un serveur dédié a besoin d’un cœur de CPU rapide et de suffisamment de RAM pour contenir le monde du jeu. Pour jouer, il faut un GPU (processeur graphique), alors qu’une offre VPS standard n’en fournit pas.

La suite concerne uniquement le premier usage. Le second mérite que vous y consacriez deux minutes, car beaucoup de personnes achètent une machine qui ne convient pas.

Pourquoi vous ne pouvez pas jouer à des jeux sur un VPS

Un VPS standard fournit des cœurs de processeur virtuels, mais aucune carte graphique. Aucun périphérique n’est exposé depuis l’hôte physique. Le jeu ne dispose donc d’aucun renderer matériel. Vous pouvez vérifier ce que vous avez réellement obtenu :

sudo apt install -y pciutils
lspci | grep -iE "vga|3d"

La réponse est un adaptateur d’affichage virtuel, par exemple un périphérique Cirrus Logic ou un GPU virtio. Il sert à afficher un écran dans la console web du fournisseur et ne fournit aucune accélération 3D. Si vous installez un environnement de bureau et un serveur VNC par-dessus, glxinfo -B indique que son renderer est llvmpipe, le renderer logiciel de Mesa qui s’exécute sur le processeur. Un jeu 3D moderne rendu par le processeur atteint quelques images par seconde. Il est donc injouable avant même que quoi que ce soit ne quitte le serveur. Les instances Windows rencontrent le même problème, sous une autre forme. De nombreux jeux se ferment au lancement en indiquant qu’ils n’ont pas pu créer de périphérique Direct3D, car aucun adaptateur d’affichage ne permet de le créer.

Le deuxième problème concerne le trajet de retour jusqu’à vous. Jouer sur une machine distante signifie que chaque image est encodée en vidéo, envoyée sur Internet, puis décodée sur votre écran. Cela ajoute le temps d’encodage et de décodage à la latence d’entrée du jeu. RDP et VNC ont été conçus pour les environnements de bureau, pas pour afficher des mouvements à 60 images par seconde. Les services de cloud gaming résolvent ce problème avec du matériel GPU réel et un protocole de streaming conçu à cet effet. Un VPS standard ne dispose ni de l’un ni de l’autre. Si vous voulez jouer, louez du temps GPU. Si vous voulez héberger, poursuivez la lecture.

Ce dont un serveur de jeu dédié a réellement besoin

Un serveur de jeu exécute une boucle de simulation. Il conserve le monde en mémoire et le fait avancer un nombre fixe de fois par seconde. Chaque joueur connecté reçoit ensuite la partie du monde qu’il peut voir.

Cette structure détermine le matériel. La boucle s’exécute principalement sur un seul thread : la fréquence du cœur compte donc davantage que le nombre de cœurs. Le monde réside en mémoire : la RAM est généralement la première limite atteinte. Le disque est peu sollicité pendant la partie, puis fortement sollicité lors du chargement et de la sauvegarde. Votre chemin réseau détermine le ping ; aucun niveau d’offre ne peut le modifier.

La vitesse d’un seul cœur prime sur le nombre de cœurs

La plupart des serveurs de jeu font avancer le monde sur un thread principal. La boucle de ticks de Minecraft et les frames serveur du moteur Source fonctionnent de cette manière. Chaque tick doit respecter une échéance. Minecraft Java exécute 20 ticks par seconde, ce qui laisse 50 millisecondes à chaque tick. Lorsque le travail dépasse ce délai, le serveur affiche exactement ceci :

[12:04:51] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2547ms or 50 ticks behind

Cette ligne signifie qu’un thread n’a pas terminé à temps. Ajouter des cœurs ne donne pas plus de temps à ce thread. Un plan avec 2 vCPU rapides maintiendra un taux de ticks qu’un plan avec 8 vCPU lents ne pourra pas tenir, car un seul de ces 8 vCPU effectue le travail qui compte.

Mesurez la vitesse d’un thread avant de vous engager :

sudo apt install -y sysbench
sysbench cpu --cpu-max-prime=20000 --threads=1 run

Lisez la ligne events per second. Le nombre n’a aucune signification pris seul, mais il est utile pour comparer. Exécutez donc le test sur deux plans candidats et placez les résultats côte à côte. Un benchmark complet de VPS couvre le disque et le réseau de la même manière.

Les cœurs supplémentaires restent utiles. Ils exécutent le deuxième serveur de jeu, la base de données, la sauvegarde nocturne et le pré-générateur de chunks sans prendre de temps au thread des ticks. Les logiciels serveur ont également appris à répartir la charge. Paper, un fork populaire de serveur Minecraft, déplace une partie du travail hors du thread principal des ticks. Le bon choix consiste donc à prendre quelques cœurs rapides, et non beaucoup de cœurs lents.

Un nombre n’apparaît jamais sur la page d’un plan, alors qu’il détermine si le cœur rapide que vous avez payé vous est réellement réservé :

vmstat 1 5

La colonne st indique le pourcentage de temps pendant lequel votre vCPU était prêt à s’exécuter, mais où l’hôte physique a attribué le cœur à un autre utilisateur. Une valeur st stable au-dessus de quelques pour cent indique que l’hôte est surchargé en souscriptions. Les joueurs ressentent alors des saccades, tandis que top sur votre serveur affiche encore un CPU inactif, car ce temps d’inactivité ne vous est pas disponible.

De combien de RAM un serveur de jeu a-t-il besoin ?

GraphiqueCommon starting RAM per game server (published guidance, not a measurement)
Les données de ce graphique
[
  {
    "label": "Minecraft Java, vanilla",
    "players": 10,
    "ram_gb": 2
  },
  {
    "label": "Minecraft Java, large modpack",
    "players": 10,
    "ram_gb": 8
  },
  {
    "label": "Valheim",
    "players": 10,
    "ram_gb": 4
  },
  {
    "label": "Palworld",
    "players": 32,
    "ram_gb": 16
  }
]

Ce sont les allocations de départ publiées dans la documentation des jeux et des modpacks, en date d’août 2026. Elles servent de repères et ne correspondent pas à des mesures effectuées sur une machine précise. Minecraft Java vanilla fonctionne correctement avec 2 Go de heap pour environ 10 joueurs. Le même nombre de joueurs sur un modpack volumineux nécessite 8 Go, car les mods ajoutent des entités et des structures générées qui résident toutes dans ce heap. Le minimum indiqué par Valheim est de 2 Go, tandis que des opérateurs disposant d’un petit monde indiquent que le processus se stabilise plutôt autour de 3 Go. 4 Go constitue donc un bon point de départ. Palworld fait exception avec 16 Go pour son maximum de 32 joueurs, selon les recommandations de Pocketpair.

La RAM n’évolue pas en fonction du nombre de connexions. Elle dépend du monde chargé. Chaque joueur maintient chargée la région qui l’entoure. Deux joueurs regroupés consomment donc bien moins de mémoire que deux joueurs qui explorent des zones opposées de la carte. C’est pourquoi la « RAM par joueur » ne constitue qu’un repère approximatif. La « RAM par zone active » est le facteur déterminant. Un petit groupe qui aime explorer peut donc dépasser les besoins d’une configuration prévue pour deux fois plus de joueurs.

Les serveurs Java nécessitent deux règles supplémentaires. Définissez le heap minimal et maximal à la même valeur afin que la JVM n’interrompe jamais le serveur pour le redimensionner :

java -Xms4G -Xmx4G -jar server.jar nogui

Prévoyez ensuite une marge. La JVM utilise de la mémoire en dehors du heap que vous lui avez attribué, notamment pour les piles des threads et les buffers natifs. Le kernel a également besoin du page cache pour lire rapidement les fichiers du monde. Sur une machine de 6 Go, un heap de 4 Go est raisonnable. Un heap de 6 Go ne l’est pas.

Les deux types d’épuisement de la mémoire produisent des symptômes très différents. Apprenez à reconnaître leurs messages. Un heap trop petit provoque une erreur dans Java, et le serveur continue généralement à fonctionner difficilement :

java.lang.OutOfMemoryError: Java heap space

Un heap plus grand que la mémoire disponible entraîne l’arrêt du processus par un mécanisme externe. La console affiche uniquement Killed. Les éléments permettant d’identifier la cause se trouvent dans le journal du kernel :

sudo dmesg -T | grep -i "out of memory"

Ajouter du swap empêche l’arrêt, mais ne corrige rien. Une boucle de tick qui doit relire le monde depuis le swap dépasse toutes ses échéances. Les joueurs obtiennent alors un serveur figé plutôt qu’un serveur arrêté brutalement.

Note concernant les versions, vérifiée le 2026-10-11 à partir des métadonnées de version de Mojang : Minecraft Java 1.20.5 à 1.21.11 nécessite Java 21. Les versions 26.1 et ultérieures, y compris la version actuelle 26.3, nécessitent Java 25. Un runtime plus ancien démarre, puis échoue avec une erreur de version de fichier de classe non prise en charge. Ce message ressemble à celui d’un compilateur et déroute souvent lors de la première rencontre. Ubuntu 22.04, 24.04 et 26.04 fournissent tous le runtime Java 25 dans leur archive standard :

sudo apt install -y openjdk-25-jre-headless
java -version

La vitesse du disque a-t-elle de l’importance pour un serveur de jeu ?

Moins qu’on ne le pense pendant le jeu, mais beaucoup à deux moments précis. Le monde est chargé en mémoire au démarrage, puis réécrit sur le disque lors de l’autosave. La vitesse du disque se traduit donc par un démarrage lent et par une pause pendant la sauvegarde. Entre ces deux opérations, la plupart des lectures sont servies depuis la RAM.

Deux éléments rendent le disque plus important que ne le laisse penser ce résumé. L’exploration charge de nouveaux chunks ou de nouvelles zones depuis le disque pendant que les joueurs se déplacent, et cette lecture s’effectue dans le tick budget. L’autosave d’un monde volumineux écrit beaucoup de données d’un coup. Sur un volume lent, l’écriture bloque la boucle assez longtemps pour afficher l’avertissement « Can't keep up » mentionné plus haut. Dans les deux cas, le problème vient de la latence, pas du débit. C’est pourquoi l’écart entre un SSD NVMe et un SSD SATA sur un VPS compte davantage ici que ne le suggère le débit en mégaoctets par seconde. Ce qui importe, c’est la durée d’une petite opération.

Prévoyez une capacité suffisante pour la croissance. Un monde grossit chaque fois qu’un joueur explore un nouvel endroit, et vos sauvegardes multiplient l’espace occupé. Exécutez du -sh world une fois par semaine pendant un mois pour connaître votre taux de croissance réel.

Fréquence des ticks, ping et différence entre les deux

La fréquence des ticks correspond au nombre de fois par seconde où le serveur recalcule l’état du monde. Minecraft Java fonctionne à 20. Les serveurs basés sur le moteur Source fonctionnent généralement à 64. Dans Minecraft, 20 est la fréquence prévue par le jeu. La commande /tick rate permet de la modifier, mais elle accélère ou ralentit l’ensemble du monde au lieu de le rendre plus fluide. Un serveur plus puissant ne l’augmente pas automatiquement. L’objectif est donc de maintenir 20, et non de les dépasser.

Le ping correspond à l’aller-retour entre un joueur et le serveur. Ces deux problèmes produisent des symptômes différents. Identifiez-les avant de dépenser de l’argent. Lorsque le serveur manque des ticks, tous les joueurs subissent un rubber-banding au même moment, et le journal du serveur l’indique généralement en toutes lettres. Lorsqu’un joueur a un chemin réseau long, lui seul subit des ralentissements, tandis que le reste du groupe n’a aucun problème. Un CPU plus puissant ne corrigera jamais le second cas.

La latence dépend de la localisation, pas de l'offre commerciale

La lumière dans la fibre parcourt environ 200 kilomètres par milliseconde. Un aller-retour couvre deux fois cette distance, le minimum théorique est donc d'environ 1 ms pour chaque tranche de 100 km entre le joueur et le serveur. Aucun fournisseur ne peut surpasser cette limite, et aucune montée en gamme de votre offre ne la modifiera.

GraphiqueRound trip floor by distance, fibre physics only
Les données de ce graphique
[
  {
    "label": "Toronto to New York",
    "distance_km": 550,
    "rtt_floor_ms": 5.5
  },
  {
    "label": "Dallas to Chicago",
    "distance_km": 1290,
    "rtt_floor_ms": 12.9
  },
  {
    "label": "Dallas to Los Angeles",
    "distance_km": 1990,
    "rtt_floor_ms": 19.9
  },
  {
    "label": "New York to London",
    "distance_km": 5570,
    "rtt_floor_ms": 55.7
  },
  {
    "label": "Los Angeles to Sydney",
    "distance_km": 12070,
    "rtt_floor_ms": 120.7
  }
]

Ces valeurs minimales sont calculées à partir de la distance orthodromique. La fibre réelle ne suit pas une ligne droite et chaque routeur sur le trajet ajoute un léger délai ; un résultat réaliste se situe donc souvent autour du double de ce minimum. Un joueur à Toronto qui rejoint un serveur à New York, distant de 550 km, a un minimum de 5.5 ms et observera généralement une latence située dans la dizaine de millisecondes. Le trajet entre Los Angeles et Sydney a un minimum de 120.7 ms, et aucune somme d'argent ne pourra réduire ce délai.

Placez donc le serveur à proximité des joueurs. Si votre groupe est réparti de part et d'autre d'un océan, quelqu'un subira forcément le trajet le plus long ; la solution la plus équitable consiste généralement à choisir la région où se trouve la majorité des joueurs.

Mesurez le trajet au lieu de le deviner :

sudo apt install -y mtr-tiny
mtr -rwzc 100 203.0.113.10

Lisez la dernière ligne en priorité. Cette ligne correspond au serveur ; sa perte de paquets et sa latence sont les seuls facteurs qui déterminent la fluidité du jeu. Une perte affichée sur un saut intermédiaire alors que le saut final est propre est presque toujours due à une limitation du débit ICMP sur ce routeur, car les routeurs traitent les réponses aux paquets de test avec une priorité moindre tout en transférant le trafic réel normalement. Demandez à chaque joueur d'exécuter ce test vers le serveur, car chacun d'entre eux emprunte un chemin différent.

Comment le minimum de l'aller-retour est calculé

La lumière dans le verre se déplace à environ deux tiers de sa vitesse dans le vide, ce qui correspond à près de 200 km par milliseconde. Un aller-retour couvrant la distance deux fois, le minimum en millisecondes correspond à la distance aller simple en kilomètres divisée par 100. La distance entre New York et Londres est de 5 570 km, et 5570 divisé par 100 donne 55,7 ms. Chaque valeur mesurée sera supérieure à ce chiffre, car les câbles suivent les tracés côtiers et les routeurs ont besoin de temps pour traiter les données.

N’ouvrez que les ports nécessaires au jeu

Un serveur de jeu n’a besoin que d’un ou deux ports ouverts. N’ouvrez aucun autre port. Les valeurs par défaut les plus courantes sont les suivantes :

  • Minecraft Java Edition : TCP 25565
  • Minecraft Bedrock Edition : UDP 19132
  • Valheim : UDP 2456 et UDP 2457
  • Palworld : UDP 8211
  • Jeux Source et Source 2 de Valve, comme Counter-Strike 2 : UDP 27015

Consultez la documentation du jeu, car certains titres utilisent un port de requête supplémentaire. Valheim en est l’exemple le plus clair : le port 2456 transporte le trafic du jeu et le port 2457 répond aux requêtes du serveur Steam qui permettent à votre serveur d’apparaître dans la liste des serveurs. Ouvrir ces ports en TCP ne sert à rien, car Valheim utilise uniquement UDP.

Autorisez SSH avant d’activer le firewall. Sinon, vous risquez de perdre l’accès à votre propre serveur :

sudo ufw allow 22/tcp
sudo ufw allow 25565/tcp
sudo ufw enable
sudo ufw status verbose

De nombreux fournisseurs exécutent également un firewall réseau dans leur panneau de contrôle, indépendamment de celui du serveur. Un port ouvert dans ufw mais fermé dans ce firewall refuse toujours les connexions. Le symptôme est identique depuis l’extérieur. Vérifiez donc les deux emplacements avant de modifier les fichiers de configuration.

Vérifier un port TCP depuis une autre machine est simple :

sudo apt install -y netcat-openbsd
nc -vz 203.0.113.10 25565

UDP ne peut pas être testé de cette manière. Un port UDP fermé reste généralement silencieux. Une sonde qui ne reçoit aucune réponse ne vous apprend donc rien. Effectuez plutôt la vérification depuis le serveur et recherchez le processus du jeu à l’écoute sur le port attendu :

sudo ss -lunp | grep 2456

N’exposez jamais RCON, le protocole de console distante, sur Internet. Il utilise un mot de passe unique transmis sur une connexion en clair, par défaut sur le port 25575. Liez-le à 127.0.0.1 et utilisez-le au moyen d’un tunnel SSH. Exécutez également le serveur de jeu avec son propre utilisateur sans privilèges, afin qu’un bug dans un mod ne puisse pas atteindre le reste de la machine. Les dix premières minutes sur un nouveau VPS présente la création du compte utilisateur et le renforcement de la configuration SSH supposés déjà réalisés dans cette section.

Exécuter le serveur avec systemd pour qu’il redémarre

Un serveur lancé manuellement dans une session SSH s’arrête lorsque la session se ferme et reste arrêté après un redémarrage. systemd corrige ces deux problèmes. L’unité exécute le serveur avec son propre utilisateur minecraft, qui possède /opt/minecraft et rien d’autre :

sudo useradd --system --home-dir /opt/minecraft --shell /usr/sbin/nologin minecraft
sudo chown -R minecraft:minecraft /opt/minecraft

Créez ensuite /etc/systemd/system/minecraft.service :

[Unit]
Description=Minecraft Java server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar server.jar nogui
Restart=on-failure
RestartSec=15
TimeoutStopSec=180

[Install]
WantedBy=multi-user.target

Restart=on-failure redémarre le serveur après un crash et le laisse arrêté après un arrêt propre, ce qui est le comportement recherché. Restart=always tente de le relancer chaque fois que vous arrêtez volontairement le serveur. TimeoutStopSec=180 est plus important qu’il n’y paraît. systemctl stop envoie SIGTERM ; le serveur Minecraft vanilla intercepte ce signal et sauvegarde le monde avant de quitter. Lorsque le délai expire, systemd envoie SIGKILL. Un monde volumineux peut nécessiter plus que les 90 secondes par défaut pour être écrit. Les données qui ne sont pas encore enregistrées sur le disque au moment où SIGKILL est envoyé sont perdues.

sudo systemctl daemon-reload
sudo systemctl enable --now minecraft
sudo journalctl -u minecraft -f

Un démarrage correct se termine par une ligne similaire à Done (12.345s)! For help, type "help". Si l’unité alterne entre les états activating et failed, journalctl -u minecraft -n 50 contient la raison. Il s’agit généralement d’un chemin incorrect dans WorkingDirectory ou d’un heap plus grand que la mémoire disponible sur la machine.

Un service systemd comme celui-ci s’exécute par défaut sans console interactive. Prévoyez donc ce point dès le départ. Utilisez RCON sur localhost pour exécuter des commandes, ou lancez le serveur dans une session tmux. Cette même méthode permet de conserver une session Claude Code longue durée active sur un VPS entre deux connexions.

Les jeux distribués via Steam nécessitent SteamCMD avant toute autre étape. Le paquet Ubuntu est un binaire 32 bits, d’où la présence de la ligne d’architecture. Si vous l’omettez, apt indique qu’aucun candidat d’installation n’est disponible :

sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd

Certains serveurs de jeux augmentent leur consommation mémoire au fil du temps. Un redémarrage planifié à une heure creuse est alors la solution couramment utilisée, mais il ne corrige pas la cause. Un timer systemd qui appelle systemctl restart est plus facile à contrôler qu’une entrée cron, car systemctl list-timers affiche exactement la date et l’heure de sa prochaine exécution.

Planifier des sauvegardes du monde

Sur un serveur de jeu, tout peut être remplacé, sauf le répertoire du monde et les données des joueurs. Réinstaller le jeu prend quelques minutes. Reconstruire ce que votre groupe a bâti prend des mois.

Une sauvegarde fiable est effectuée lorsqu’aucun processus n’écrit dans les fichiers. Arrêter le serveur pendant une minute est la méthode la plus simple pour garantir que :

sudo systemctl stop minecraft
sudo tar czf /var/backups/mc-$(date +%F).tgz -C /opt/minecraft world world_nether world_the_end
sudo systemctl start minecraft

Si une interruption chaque nuit n’est pas acceptable, forcez d’abord l’écriture du monde. Dans la console Minecraft, save-off désactive la sauvegarde automatique, save-all flush écrit toutes les données encore en attente et save-on réactive la sauvegarde automatique une fois la copie terminée. Copier un monde pendant que le serveur écrit peut produire un fichier de région partiellement écrit. Vous ne le découvrirez que le jour où vous devrez effectuer la restauration.

Conservez au moins une copie sur une autre machine. Une sauvegarde présente sur le même disque ne survit pas à une panne du disque. Un snapshot fourni par l’hébergeur est une commodité, pas une sauvegarde, car il reste dans le même compte que vous pourriez perdre. Sauvegardes restic planifiées vers un stockage externe gère la rétention et la déduplication. Ainsi, un mois de copies nocturnes du monde ne remplit pas votre volume.

Effectuez ensuite une restauration. Une sauvegarde que vous n’avez jamais restaurée reste une supposition. Extrayez l’archive de la nuit précédente dans un répertoire temporaire, configurez un serveur de test pour l’utiliser et vérifiez que le monde se charge et que les bâtiments sont bien à leur place.

Vérifiez ces points avant de vous engager

Achetez un mois plutôt qu’une année et faites un test avec de vrais joueurs pendant une soirée. Exécutez le test mono-thread sysbench, puis demandez à chaque joueur d’exécuter mtr vers le serveur. La procédure complète de benchmark d’un VPS présente ces outils et montre à quoi ressemble un mauvais résultat. Le coût réel d’un VPS par mois vous aide à vérifier que vous payez pour la ressource qui limite votre serveur, et non pour celle qui est affichée en plus gros sur la page de l’offre.

Deux articles poursuivent ce sujet. Créer un serveur Minecraft sur un VPS reprend pas à pas tout ce qui précède, avec le jeu par lequel la plupart des utilisateurs commencent. La liste élargie des services qu’un VPS peut héberger mérite votre attention si vous préférez que le serveur serve à autre chose entre deux soirées de jeu.

FAQ

Puis-je jouer à des jeux sur un VPS au lieu d’acheter un PC gaming ?

Non. Un VPS standard n’a pas de GPU, seulement un adaptateur d’affichage virtuel pour la console du fournisseur. Une fois un bureau installé, glxinfo -B indique le moteur de rendu logiciel llvmpipe, et un jeu 3D tourne à quelques images par seconde. Même avec un GPU attaché, le jeu à distance ajoute l’encodage et le décodage vidéo de chaque image à chaque aller-retour, et RDP et VNC n’ont jamais été conçus pour cela. Un VPS sert à héberger le serveur dédié auquel votre groupe se connecte. Louez du temps GPU ou utilisez un service de cloud gaming si vous voulez jouer.

De combien de cœurs CPU un serveur de jeu a-t-il besoin ?

Deux cœurs rapides sont plus performants que huit cœurs lents pour la plupart des jeux, car la simulation du monde s’exécute sur un thread principal et les cœurs supplémentaires ne peuvent pas aider ce thread à respecter son délai de 50 ms. Comparez les offres candidates avec sysbench cpu --cpu-max-prime=20000 --threads=1 run et consultez la valeur des événements par seconde. Des cœurs supplémentaires sont utiles si vous exécutez aussi un second serveur ou une base de données sur la même machine, car ces charges peuvent alors s’exécuter sans prendre de temps au thread des ticks.

De combien de RAM un serveur Minecraft a-t-il besoin ?

Comptez environ 2 GB de heap pour un monde vanilla avec environ 10 joueurs, et 8 GB pour un modpack volumineux avec le même nombre de joueurs. Définissez -Xms et -Xmx sur la même valeur, et laissez 1 GB à 2 GB de mémoire libre pour le système d’exploitation, car la JVM utilise de la mémoire en dehors du heap et le kernel a besoin du page cache. Si le heap est plus grand que la mémoire de la machine, le kernel tue le processus. dmesg affiche alors une ligne indiquant un manque de mémoire, et non une erreur Java.

Pourquoi mes joueurs subissent-ils des ralentissements alors que le serveur a encore du CPU et de la RAM disponibles ?

Deux causes correspondent à cette situation. Consultez le log du serveur pour rechercher Can't keep up! Is the server overloaded?. Cela signifie que le thread principal unique n’a pas respecté son budget de 50 ms par tick, tandis que les autres cœurs étaient inactifs. Sur Paper, cet avertissement peut être désactivé avec warn-on-overload: false dans bukkit.yml. Vérifiez donc qu’il est toujours activé avant d’interpréter son absence. Si l’avertissement est activé mais absent, examinez le chemin réseau. Demandez à chaque joueur d’exécuter mtr -rwzc 100 203.0.113.10 vers l’adresse de votre serveur et de lire la dernière ligne. Vérifiez également la colonne st dans vmstat 1. Un steal time supérieur à quelques pour cent signifie que l’hôte est surchargé, et que le CPU inactif que vous voyez ne vous est donc pas réellement disponible.

Quels ports dois-je ouvrir pour un serveur de jeu ?

Uniquement le port utilisé par le jeu, ainsi que SSH. Minecraft Java utilise TCP 25565, Minecraft Bedrock utilise UDP 19132, Valheim utilise UDP 2456 et 2457, et Palworld utilise UDP 8211. Ajoutez la règle SSH avant d’exécuter ufw enable, sinon vous perdrez l’accès à la machine. N’oubliez pas que de nombreux fournisseurs utilisent un second firewall dans leur panneau de contrôle. Le port doit alors être ouvert aux deux endroits. N’ouvrez jamais RCON sur le port 25575 vers Internet, car il transmet un seul mot de passe en clair.

Cet article vous a-t-il été utile ?