Économisez 20% dès aujourd'hui Utilisez le code BIENVENUE lors du paiement. ACCUEILLIR

Optimisation du serveur FiveM : le guide ultime pour 2025

Public: Propriétaires de serveurs et administrateurs système expérimentés qui souhaitent pousser une instance de production FiveM à ses limites tout en maintenant la stabilité et la gestion des données conforme au RGPD.

But: Réduisez concrètement le temps d'image, réduisez la latence de jointure et libérez des cycles CPU sans gameplay compromettant.


Début – Mesurer avant de peaufiner

  1. Sauvegardez d'abord. Créez une copie hors site de l’intégralité de votre données du serveur dossier et base de données. (voici comment sauvegarder)
  2. Établir une série de références :# Dans la console resmon 1 # métriques en direct – voir Section 1 profilemode server sv_maxclients 32 # correspond à la population actuelle pour des nombres comparables
  3. Enregistrer:
    • L'heure du tic-tac (MS)
    • Utilisation moyenne de resmon par ressource
    • Temps de connexion pour apparaître (chronomètre)

Pourquoi? L'optimisation sans base de référence est une question de conjectures. Conservez ces chiffres afin de pouvoir annuler toute modification qui aggraverait la situation.


En utilisant résmon Comme un pro (guide détaillé)

Capture d'écran de la console FiveM Resmon
CommandeCe qu'il faitCible typique
résmon 1Démarre le moniteur de ressources en direct.Serveur de développement.
resmon_logDéverse les moyennes dans un fichier CSV.Échantillonnage de production.

Règles empiriques

  • ≤ 0,40 ms utilisation inactive → conserver.
  • 0,40 – 1,00 ms → optimiser bientôt.
  • > 1,00 ms → refactoriser ou désactiver.

Si Processeur % les pointes coïncident avec ~33 FPS baisse du FPS du serveur, le goulot d'étranglement est votre scénario, pas de matériel hôte.


Ajustements au niveau de la configuration

2.1 serveur.cfg Essentiel

# Networking
onesync on              # mandatory for >32 slots
sv_maxclients 64        # raise ONLY if tick time < 6 ms after optimisation
sv_maxrate 65000        # bytes/s per client (≈ 520 kbps)
sv_minrate 25000
sv_packetLoss 0.05      # disconnect if 5 % loss sustained
# Performance
set sv_enhancedDriver true   # newer FXServer builds only
sets gamename "gta5"          # avoid legacy fallbacks

Note d'incertitude : sv_enhancedDriver est expérimental dans les artefacts < 6368 ; vérifiez le journal des modifications.

2.2 Système d'exploitation et hôte

  • Ubuntu 22.04 LTS ou Windows Server 2022
  • Désactiver les états C (BIOS) et définir Performance gouverneur
  • Lier Serveur FX aux cœurs hautes performances :ensemble de tâches -c 2-7 fxserver +exec server.cfg

3 · Optimisation au niveau des ressources

3.1 Refactoriser les boucles coûteuses

-- ⚠️ Anti-modèle (exécute chaque image) Citizen.CreateThread(function() while true do -- NO wait local p = PlayerPedId() SetPedInfiniteAmmoClip(p, true) end end) -- ✅ Bon : cache + délai local p = PlayerPedId() Citizen.CreateThread(function() while true do SetPedInfiniteAmmoClip(p, true) Wait(1000) -- 1 sec end end)

3.2 Tirer parti de la Optimiseur de script FiveM (IA) → essayez-le

Collez votre script Lua : le modèle signale les boucles infinies serrées, les natifs redondants et propose des suggestions de correctifs automatiques. Vérifiez toujours la sortie des différences ligne par ligne avant le déploiement.

3.3 Désactiver les ressources inutilisées

assurer Mettez uniquement ce dont vous avez réellement besoin. Commentez les scripts hérités :

# assure old_vehshop

3.4 Budget LOD / Streaming dynamique

Utilisez le r_drivepad cvar pour réduire la distance d'affichage pour le trafic IA lorsque FPS < 50 sur les clients.

Plus de conseils sur les actifs dans la section 4.


4 · Optimisation au niveau des actifs

Type d'actifLimite stricteOutillage
.cumul à ce jour texture≤ 16 MioBoîte à outils de texture, exportation GIMP DDS
Nombre de polygones des accessoires≤ 50 kBlender décime + LODs automatiques
.awc audio48 000 Hz monoRééchantillonnage d'Audacity

Les données en streaming sont stockées dans la RAM. Conserver flux/ sous 1 Go pannes totales ou risque de pannes de mémoire du client.

Lectures complémentaires → Optimiser les temps de chargement.


5 · Base de données et E/S

  • Utiliser mysql-async ou oxmysql; éviter la synchronisation MySQL.Sync.fetchAll à l'intérieur des tiques.
  • Ajouter des index sur les colonnes fréquemment interrogées dans SÉLECTIONNEZ ... OÙ ... clauses.
  • Mettez en cache les données immuables (par exemple, les noms de véhicules) dans les tables Lua, et non les hits de la base de données.

6 · Surveillance continue et protections contre la régression

  1. Automatisé chaque nuit resmon_log 120 – envoyer un fichier CSV à Grafana.
  2. Hook de pré-validation Git invoquer l'optimiseur de script AI.
  3. Test de charge chaque PR avec ≥ double du nombre d'emplacements actuels.

Pointeurs côté serveur supplémentaires → Améliorer les performances : optimiser les scripts.


7 · Quand le matériel est le mur

  • Ryzen 7 7800X3D > Intel i9‑14900K pour la latence monothread.
  • 64 Go DDR5 6000 CL30 pour minimiser les défauts de page.
  • SSD NVMe Gen 4 > 5000 Mo/s pour un streaming de cartes rapide.

Hôte avec au moins 1 Gbit/s haut/bas ; désactiver les plans vCPU partagés.


8 · RGPD et confidentialité

Faire pas enregistrer les adresses IP plus longtemps que nécessaire sur le plan opérationnel (considérant 39). Identifiants de hachage (SHA‑256) si vous avez besoin d'analyses.

Assurez-vous que tous les scripts d'analyse tiers sont définis SameSite=Lax et effacer lors de la déconnexion.


9 · Liste de contrôle (pour votre équipe d'administration)

Alors, que faire ? En résumé :

#TâcheAction concrète / commandementCritères de réussite
Pré-vol
1Instantané et tagtar -czf backup_$(date +%F).tgz ~/fivem/server-data && mysqldump -u root -p --single-transaction fivem > db.sql
Balise Git : git tag prod-$(date +%F)
Archives stockées hors site et Git CI vert
2Parité des artefactsDocument FXServer build testé en staging (par exemple b6362)Même numéro de build prêt en production
3Fenêtre de maintenanceInformer les joueurs, définir sv_login_token "" ou activer txAdmin mode maintenancePas de nouvelles recrues ; les joueurs actuels sont avertis
Déployer
4Arrêter les services proprementtxadmin stop ou Ctrl-C dans la console ; attendez « Enregistrement de la carte… »Aucun processus FXServer orphelin
5Mettre à niveau les binairesRemplacer Serveur FX & alpin à partir du zip d'artefact validé./FXServer + définir la version montre une nouvelle construction
6Appliquer optimisé serveur.cfgCopier le fichier révisé ; exécuter +exec server.cfg +set comlint 1Aucune erreur « cvar inconnue »
7Réduire les ressourcesDéplacer les scripts inutilisés vers ressources-désactivées/; confirmer avec assurer listerésmon affiche les entrées supprimées
8Effacer et reconstruire le cacherm -rf cache/* alors save_gta_cache macarte si les grandes cartesDossier de cache repeuplé
9Migration de base de donnéesCourir MODIFIER/CRÉER UN INDEX scripts ; tester avec EXPLIQUERAucune analyse complète de la table dans le plan de requête
10Début lié aux P-coresensemble de tâches -c 2-7 ./FXServer +exec server.cfgLe serveur démarre ; l'affinité du processeur est correcte
Vérification (10 min)
11Mesures en directrésmon 1 dans la consoleAucune ressource > 1 ms d'inactivité prolongée
12Échantillon automatiséresmon_log 600 → CSVTick moyen ≤ 6 ms ; 99e ≤ 8 ms
13Latence de connexionChronomètre de jointure pour spawn avec cache fraisTemps ≤ ligne de base – 10 %
14Test de fumée fonctionnelTéléportation, achat d'objet, conduite de véhicule, sauvegarde du garageLes chemins de jeu principaux réussissent
Gardes post-déploiement
15Flux GrafanaCron : `resmon_log 120curl -XPOST …/influx`
16Crochet de régression CILes exécutions de pré-validation diffèrent AI Script Optimizer ; bloque > +0,20 ms nouveau coûtLe crochet sort 0 uniquement sur le vert
17Rotation et hachage des journauxCron : 24 h find logs/ -mtime +1 -exec shasum -a 256 {} ; -exec rm {}IP conservées ≤ 24 h (considérant 39 du RGPD) gdpr-info.eu
18Vérification de sauvegardeRestaurer le dernier instantané sur la plateforme intermédiaire ; démarrer le serveur de testDémarrage instantané ; données intactes
19Notes de versionPubliez le journal des modifications et la fenêtre de disponibilité dans Discord ; archivez-les dans /docs/releases.mdLes parties prenantes reconnues
20Plan de restauration prêtgit checkout prod- et copier le manifeste de sauvegarde précédentRollback testé en phase de staging

Avant de mettre en ligne, gelez les binaires et la configuration, effectuez une sauvegarde propre, déployez avec l'affinité du processeur, réexécutez résmon jusqu'à ce que chaque ressource soit < 1 ms, et conservez les journaux IP pas plus de 24 heures pour rester sous la limitation de stockage du RGPD.


Conclusion

Établir une base de référence numérique, refactoriser les scripts lourds avec résmon et l'optimiseur d'IA, les actifs minces, le réglage serveur.cfg, et itérer jusqu'à ce que le temps de tick reste inférieur à 6 ms à charge maximale.


Sources

Luc
Luc

Je m'appelle Luke, je suis un joueur et j'adore écrire sur FiveM, GTA et le jeu de rôle. Je dirige une communauté de jeu de rôle et j'ai environ 10 ans d'expérience dans l'administration de serveurs.

Articles: 570

Laisser un commentaire