Aller au contenu principal

Optimiser son serveur FiveM

Optimisation serveur FiveM sur VPS RedHeberg

Ce guide vous permettra d'optimiser votre serveur FiveM pour obtenir les meilleures performances sur nos VPS Game Ryzen avec protection Anti-DDoS RedHeberg + Netrix incluse.

Configuration préalable recommandée

Choix du VPS selon votre besoin

PlanvCPURAMRecommandation
EXTREME4vCPU12GB16-24 joueurs
TITAN6vCPU16GB24-32 joueurs
OMEGA8vCPU32GB32-48 joueurs
LEGEND12vCPU64GB48+ joueurs
Conseil d'expert

Les VPS Game Ryzen (Ryzen 9 5900X à 4.8GHz+) sont spécialement conçus pour les serveurs de jeu avec des performances single-thread exceptionnelles, critiques pour FiveM.

Installation optimisée de FiveM

1. Préparation du système

# Mise à jour système
sudo apt update && sudo apt upgrade -y

# Installation des dépendances
sudo apt install -y wget curl unzip screen htop iotop

# Optimisation des limites système
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "root soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "root hard nofile 65536" | sudo tee -a /etc/security/limits.conf

# Configuration réseau
echo "net.core.rmem_max = 16777216" | sudo tee -a /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4096 87380 16777216" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 4096 65536 16777216" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2. Installation serveur FiveM

# Création utilisateur dédié
sudo useradd -m -s /bin/bash fivem
sudo usermod -aG sudo fivem

# Basculer vers l'utilisateur fivem
sudo -u fivem -i

# Téléchargement FxServer
cd /home/fivem
wget https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/6683-c5fe928c0e0e2e37b88216a7cd04b6e2d48fb2b5/fx.tar.xz
tar -xf fx.tar.xz

# Structure des dossiers
mkdir -p server-data/{resources,cache}
cd server-data

Profiling et diagnostic des performances

3. Utilisation de resmon (Resource Monitor)

# Dans la console F8 de votre client FiveM connecté
resmon
Analyse resmon
  • Tick time : Temps d'exécution par frame (doit être <5ms)
  • Memory : Consommation mémoire par ressource
  • Streaming : Ressources de streaming (cartes, véhicules, skins)

4. Monitoring système avancé

# Script de monitoring automatisé
cat > /home/fivem/monitor.sh << 'EOF'
#!/bin/bash
while true; do
echo "=== $(date) ===" >> /home/fivem/perf.log
echo "CPU Usage:" >> /home/fivem/perf.log
top -bn1 | grep "Cpu(s)" >> /home/fivem/perf.log
echo "Memory Usage:" >> /home/fivem/perf.log
free -h >> /home/fivem/perf.log
echo "FiveM Process:" >> /home/fivem/perf.log
ps aux | grep FXServer | head -1 >> /home/fivem/perf.log
echo "---" >> /home/fivem/perf.log
sleep 300
done
EOF

chmod +x /home/fivem/monitor.sh
# Lancer en arrière-plan
nohup /home/fivem/monitor.sh &

Configuration serveur optimisée

5. Server.cfg performant

cat > /home/fivem/server-data/server.cfg << 'EOF'
# Configuration réseau optimisée RedHeberg
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

# Paramètres selon votre VPS
sv_maxclients 32 # EXTREME: 24, TITAN: 32, OMEGA: 48
sv_hostname "Mon serveur FiveM [RedHeberg]"

# Optimisations performances
set sv_enforceGameBuild 2944
set sv_sendLogToDiscord ""
set sv_licenseKey "votre_license_key"

# Heartbeat et GC optimisé
set sv_heartbeatInterval 30000
set sv_forceIndirectListing true
set sv_listingEnabled true

# Optimisation réseau
set netLibrary_maxReliablePerFrame 200
set voice_use3dAudio true
set voice_useSendingRangeOnly true

# Anti-crash
set sv_scriptHookAllowed false
set sv_endpointPrivacy true

# Ressources essentielles
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure basic-gamemode
ensure hardcap

# Vos ressources custom
# ensure votre-resource
EOF

6. Optimisation base de données

# Script maintenance MySQL/MariaDB
cat > /home/fivem/db_optimize.sh << 'EOF'
#!/bin/bash
DB_NAME="votre_database"
DB_USER="votre_user"
DB_PASS="votre_password"

# Nettoyage logs anciens
mysql -u$DB_USER -p$DB_PASS $DB_NAME -e "DELETE FROM logs WHERE created_at < DATE_SUB(NOW(), INTERVAL 7 DAY);"

# Nettoyage sessions expirées
mysql -u$DB_USER -p$DB_PASS $DB_NAME -e "DELETE FROM user_sessions WHERE last_seen < DATE_SUB(NOW(), INTERVAL 24 HOUR);"

# Optimisation tables
mysql -u$DB_USER -p$DB_PASS $DB_NAME -e "OPTIMIZE TABLE users, vehicles, owned_vehicles, user_inventory;"

echo "Optimisation BDD terminée - $(date)" >> /home/fivem/db_optimize.log
EOF

chmod +x /home/fivem/db_optimize.sh

# Automatisation quotidienne
(crontab -l 2>/dev/null; echo "0 4 * * * /home/fivem/db_optimize.sh") | crontab -

Optimisations avancées par ressource

7. Désactivation ressources inutilisées

# Dans votre server.cfg, commenter les ressources non utilisées
cat >> /home/fivem/server-data/server.cfg << 'EOF'
# Ressources natives désactivées pour optimiser
# stop hardcap # Si vous gérez les slots différemment
# stop sessionmanager # Si vous utilisez un framework custom

# Limitation événements réseau par seconde
set sv_eventPoolSize 100
set sv_scriptMaxEventLength 65536
EOF

8. Configuration mém