Économisez 20 % avec WELCOMEVoir les promotions
optimiser le serveur fivem

FiveM Optimisation de serveur : Le guide définitif

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

# Réseau
onesync on # obligatoire pour >32 slots
sv_maxclients 64 # augmenter UNIQUEMENT si le temps de tick < 6 ms après optimisation
sv_maxrate 65000 # octets/s par client (≈ 520 kbps)
sv_minrate 25000
sv_packetLoss 0.05 # déconnexion si 5 % de perte soutenue
# Performance
set sv_enhancedDriver true # uniquement pour les builds FXServer récentes
sets gamename "gta5" # éviter les replis hérités

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‑pattern (s'exécute à chaque frame)
Citizen.CreateThread(function()
 while true do -- PAS de 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 seconde
 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 audio48000 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 rechercher les journaux/ -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

Après que la performance est stable, auditez le chemin complet de la découverte à la connexion avec le guide de la liste de serveurs FiveM.

Laisser un commentaire