« Le serveur lag » est la phrase la plus fréquente, et la moins utile, d'un Discord de serveur FiveM. Elle recouvre au moins quatre problèmes différents, qui n'ont ni la même cause ni la même solution. Avant d'acheter une machine plus grosse — ce qui, neuf fois sur dix, ne change rien — voici comment identifier ce qui se passe réellement.
1. Commencez par décrire le symptôme
| Ce que voient les joueurs | Ce que c'est probablement |
|---|---|
| Images saccadées, mais les autres joueurs bougent normalement | Un problème côté client : PC du joueur, ou ressources trop lourdes à l'affichage. |
| Les véhicules et les joueurs se téléportent, tout le monde est touché en même temps | Le serveur n'arrive plus à suivre : c'est le fil principal qui sature. |
| Latence élevée pour certains joueurs seulement | Le réseau, ou la distance géographique. |
| Le serveur rame aux mêmes heures, ou après plusieurs heures | Une fuite de mémoire, ou un manque de ressources à la montée en charge. |
Demandez aussi combien de joueurs étaient connectés au moment du problème, et si cela s'est produit après une mise à jour ou l'ajout d'un script. Ces deux questions suffisent souvent à cadrer la recherche.
2. Lire resmon, l'outil qui donne la réponse
En jeu, ouvrez la console avec F8 et tapez :
resmon 1
Un tableau s'affiche, avec une ligne par ressource. La colonne qui compte est le temps d'exécution en millisecondes : le temps que la ressource consomme à chaque image côté client, ou à chaque tick côté serveur.
| Temps affiché | Interprétation |
|---|---|
| Moins de 0,5 ms | Normal, rien à signaler. |
| 0,5 à 2 ms | À surveiller, surtout si plusieurs ressources sont dans ce cas. |
| Plus de 2 ms en continu | Anormal : cette ressource est probablement mal écrite. |
| Plus de 5 ms | À elle seule, elle dégrade l'expérience de tout le monde. |
Regardez les valeurs au repos, joueur immobile, sans interaction : une ressource qui consomme 3 ms alors qu'il ne se passe rien tourne en boucle sans raison. C'est le motif classique du while true sans attente suffisante, et c'est la première chose à corriger ou à remplacer.
3. Côté serveur : les ticks
Dans la console du serveur, ou dans txAdmin, surveillez le temps de tick du fil principal. FiveM tourne à 20 ticks par seconde : le serveur dispose donc de 50 ms pour traiter chaque tick. Quand la somme des ressources dépasse ce budget, le serveur prend du retard, et c'est exactement ce que les joueurs ressentent comme des téléportations.
txAdmin affiche aussi un graphique de performance : une courbe qui s'envole à heures fixes indique une tâche planifiée, souvent une sauvegarde ou un nettoyage de base de données mal réglé.
Pour une mesure précise, le profileur intégré enregistre quelques secondes d'activité, à analyser ensuite dans le navigateur :
profiler record 5
profiler save /tmp/profil.json
4. Les coupables habituels
- Les requêtes SQL dans une boucle. Un script qui interroge la base à chaque tick, pour chaque joueur, met la base à genoux dès trente connectés. Regardez les temps de réponse de MariaDB.
- Les boucles sans attente. Une boucle
while trueavec unWait(0)s'exécute à chaque image : c'est parfois nécessaire, le plus souvent non. - Les entités jamais nettoyées. Véhicules abandonnés, objets posés, PNJ : au bout de quelques heures, la simulation coûte de plus en plus cher. Un script de nettoyage règle le problème.
- Les cartes personnalisées trop lourdes, qui pèsent surtout côté client et provoquent des saccades à l'entrée dans une zone.
- OneSync mal configuré, ou resté en mode ancien alors que le serveur dépasse 32 joueurs.
5. Est-ce vraiment la machine ?
Connectez-vous au serveur et regardez pendant que ça rame :
htop # charge et mémoire, en direct
free -h # mémoire disponible et swap utilisé
Trois cas, trois conclusions :
- Un seul cœur à 100 %, les autres au repos : c'est le fil principal de FiveM qui sature. Une machine avec plus de cœurs ne changera rien ; c'est une ressource qu'il faut corriger, ou un processeur avec une fréquence plus élevée.
- La mémoire est pleine et le swap est utilisé : là, le serveur est réellement sous-dimensionné. Voir notre calculateur de dimensionnement.
- Processeur et mémoire tranquilles, mais ça rame quand même : le problème est dans les scripts ou dans la base de données, pas dans la machine.
Sur une machine où les ressources ne sont pas garanties, votre serveur subit l'activité des voisins. Si vos mesures sont bonnes mais que les ralentissements arrivent au hasard, toujours aux heures de pointe, la question de l'hébergement se pose sérieusement. Nos offres réservent les ressources annoncées à votre seul serveur.
6. Ou le réseau ?
Faites tester par un joueur qui se plaint :
ping IP_DU_SERVEUR
tracert IP_DU_SERVEUR # Windows
Une latence stable sous 40 ms depuis la France est normale. Si elle grimpe par à-coups alors que le serveur est calme, le problème est sur le chemin réseau, pas sur la machine. Et si tous les joueurs voient leur latence exploser d'un coup, pensez à une attaque : voyez comprendre la protection Anti-DDoS.
7. La méthode, en cinq étapes
- Notez le symptôme exact, l'heure et le nombre de joueurs connectés.
- Lancez
resmon 1et relevez les ressources au-dessus de 2 ms au repos. - Regardez la charge du serveur avec
htoppendant l'incident. - Désactivez la ressource suspecte et observez : c'est la seule preuve qui vaille.
- Si tout est propre côté scripts et que la machine sature, alors seulement, changez d'offre.
Pour aller plus loin : quel build d'artefacts choisir et les erreurs de démarrage les plus fréquentes.
À lire ensuite
Serveur FiveM qui ne démarre pas : les erreurs fréquentes et leurs solutions
Les erreurs de démarrage les plus fréquentes d'un serveur FiveM et leur solution : licence refusée, port occupé, connexion impossi
ESX ou QBCore : quel framework choisir pour son serveur FiveM ?
Comparatif ESX Legacy et QBCore pour un serveur FiveM roleplay : écosystème, facilité de prise en main, performances, ressources d
Artefacts FiveM : quel build choisir, et comment en changer sans rien casser
Comprendre les artefacts FXServer : build recommandé ou dernier build, comment changer de version sans casser son serveur, et le r