Résoudre le server thread hitch warning sur FiveM

Le message "server thread hitch warning" dans la console FiveM signifie qu'un script a bloqué le thread principal pendant plus de 150 ms. Les joueurs le ressentent sous forme de lag, de téléportations saccadées, de véhicules qui se figent ou de PNJ qui cessent de réagir. Le problème réside presque toujours dans une resource, pas dans le matériel.

Ce qui se passe techniquement

Le serveur FiveM exécute tout sur un seul thread. Chaque tick doit être terminé en 16 ms pour atteindre 60 ticks par seconde. Si un script a besoin de 150 ms ou plus pour une seule opération, FiveM affiche le hitch warning. Le serveur prend alors du retard et doit rattraper, ce que les joueurs perçoivent comme un bref gel.

Étape 1 : trouver la cause avec resmon

Connectez-vous à votre serveur et ouvrez la console F8. Tapez resmon 1. Un overlay apparaît montrant la consommation CPU et mémoire par resource. Toute resource au-dessus de 0,25 ms mérite attention. Au-dessus de 1 ms c'est suspect. Au-dessus de 5 ms c'est presque certainement la cause de vos hitch warnings.

Étape 2 : profiler côté serveur

Resmon montre la vue côté client. Pour les problèmes côté serveur, utilisez le profiler intégré :

  1. Tapez dans la console serveur : profiler record 500
  2. Attendez que l'enregistrement soit terminé.
  3. Tapez : profiler save monprofil
  4. Tapez : profiler view monprofil

Un lien apparaît que vous ouvrez dans le navigateur. Le profil montre par resource et par fonction combien de temps a été utilisé. Zoomez sur les pics : ce sont vos responsables de hitch.

Étape 3 : causes fréquentes

  • Requêtes de base de données sans index. Une requête comme SELECT * FROM users WHERE identifier = 'steam:xxx' sur une table sans index sur identifier peut prendre des dizaines de millisecondes par appel. Ajoutez les bons index à votre base de données.
  • Boucles synchrones en Lua ou JavaScript. Un while true do sans Wait() bloque le thread en permanence. Chaque boucle dans le code côté serveur doit inclure un temps d'attente.
  • Trop d'exports par tick. Les exports appelés à chaque tick au lieu d'être mis en cache ou basés sur des événements s'accumulent rapidement.
  • YTD de véhicules non optimisés. Des véhicules custom avec des textures de 4096 px alors que FiveM plafonne en interne à 1024 px. Le serveur doit streamer les textures vers chaque client.
  • Trop de resources chargées en même temps. Cent resources est courant sur un serveur RP, mais chaque script qui récupère des données de la base au démarrage provoque un pic.

Étape 4 : résoudre

  1. Supprimez ou désactivez la resource la plus lourde et vérifiez si les hitches s'arrêtent.
  2. Remplacez les scripts gratuits mal codés par des alternatives optimisées. Les scripts payants de développeurs reconnus sont souvent mieux optimisés.
  3. Ajoutez des index à la base de données. Le plus courant : ALTER TABLE users ADD INDEX (identifier);
  4. Regroupez les requêtes de base de données au lieu de les exécuter par joueur par seconde.
  5. Configurez un redémarrage automatique via txAdmin (toutes les 6 à 12 heures) pour limiter les fuites de mémoire.

Les hitch warnings sont-ils nocifs pour le serveur ?

Ils ne causent pas de dommages permanents, mais ils dégradent l'expérience de jeu. En cas de hitches répétés, les joueurs se font déconnecter ou restent bloqués.

Plus de RAM résout-il le problème ?

Généralement non. Les hitch warnings sont un problème de CPU (le thread est bloqué), pas de mémoire. Plus de RAM n'aide que si le serveur utilise activement le swap.

Comment éviter les hitches au démarrage ?

Les hitch warnings au démarrage sont normaux : toutes les resources chargent leurs données en même temps. Ce sont les hitches pendant le jeu que vous devez résoudre.

Les offres FiveM de HostValues tournent sur des CPU Ryzen 9 avec une fréquence single-core élevée, ce qui bénéficie directement au temps par tick. Pour les questions de performance, notre équipe support vous aide à analyser la sortie de votre profiler.


Encore des questions ? Ouvrez un ticket de support et notre équipe vous aidera.

Retour au blog