Spare 20 % mit WELCOMEAngebote ansehen
fivem-Server optimieren

FiveM Serveroptimierung: Das definitive Handbuch

Publikum: Erfahrene Serverbesitzer und Systemadministratoren, die eine FiveM-Produktionsinstanz an ihre Grenzen bringen und gleichzeitig die Stabilität und DSGVO-konforme Datenverarbeitung aufrechterhalten möchten.

Ziel: Konkrete Reduzierung der Frame-Zeit, Verringerung der Join-Latenz und Freigabe von CPU-Zyklen ohne Beeinträchtigung des Gameplays.


Start – Messen vor dem Optimieren

  1. Zuerst ein Backup. Erstelle eine Kopie deiner gesamten Daten auf einem externen Speicherort Serverdaten Ordner und Datenbank. (so geht’s mit dem Backup)
  2. Referenzfahrt durchführen:# In der Konsole resmon 1 # Live-Metriken – siehe Abschnitt 1 profilemode server sv_maxclients 32 # aktuelle Population für vergleichbare Zahlen abgleichen
  3. Aufzeichnen:
    • Tick-Zeit (MS)
    • Durchschnittliche Resmon-Nutzung pro Ressource
    • Join-to-Spawn-Zeit (Stoppuhr)

Warum? Optimierung ohne Basiswerte ist Ratespiel. Speichere diese Zahlen, damit du jede Änderung, die die Dinge verschlimmert, rückgängig machen kannst.


Verwenden von resmon Wie ein Profi (ausführliche Anleitung)

Screenshot der FiveM Resmon-Konsole
BefehlWas es bewirktTypisches Ziel
Antwort 1Startet den Live-Ressourcenmonitor.Entwicklungsserver.
resmon_logGibt Durchschnittswerte in eine CSV-Datei aus.Produktionsprobenahme.

Faustregeln

  • ≤ 0,40 ms Leerlaufnutzung → behalten.
  • 0,40 – 1,00 ms → bald optimieren.
  • > 1,00 ms → umgestalten oder deaktivieren.

Wenn CPU % Spitzen fallen zusammen mit ~33 FPS Server-FPS sinkt, der Engpass ist Ihr Skript, nicht die Host-Hardware.


Optimierungen auf Konfigurationsebene

2.1 server.cfg Grundausstattung

# Netzwerk
onesync auf # zwingend erforderlich für >32 Slots
sv_maxclients 64 # nur erhöhen, wenn Tick-Zeit nach Optimierung < 6 ms
sv_maxrate 65000 # Bytes/s pro Client (≈ 520 kbit/s)
sv_minrate 25000
sv_packetLoss 0.05 # trennen bei anhaltendem 5 % Paketverlust
# Leistung
set sv_enhancedDriver true # nur neuere FXServer-Builds
sets gamename "gta5" # Legacy-Fallbacks vermeiden

Unsicherheitshinweis: sv_enhancedDriver ist experimentell in Artefakten < 6368; überprüfe das Changelog.

2.2 Betriebssystem und Host

  • Ubuntu 22.04 LTS oder Windows Server 2022
  • Deaktiviere C-Zustände (BIOS) und setze Leistung Gouverneur
  • Binden FXServer zu Hochleistungskernen:Aufgabensatz -c 2-7 fxserver +exec server.cfg

3 · Optimierung auf Ressourcenebene

3.1 Refaktorieren teurer Schleifen

-- ⚠️ Anti-Pattern (wird jeden Frame ausgeführt)
Citizen.CreateThread(function()
 while true do -- KEIN Wait
 local p = PlayerPedId()
 SetPedInfiniteAmmoClip(p, true)
 end
end)
-- ✅ Gut: Caching + Verzögerung
local p = PlayerPedId()
Citizen.CreateThread(function()
 while true do
 SetPedInfiniteAmmoClip(p, true)
 Wait(1000) -- 1 Sekunde
 end
end)

3.2 Nutze die FiveM Script Optimizer (KI) → probier es aus

Füge dein Lua-Skript ein – das Modell markiert enge unendliche Schleifen, redundante Natives und bietet Vorschläge für automatische Patches. Überprüfe immer die Diff-Ausgabe zeilenweise, bevor du sie bereitstellst.

3.3 Deaktivieren nicht verwendeter Ressourcen

sicherstellen nur das, was du tatsächlich brauchst. Kommentiere veraltete Skripte aus:

# sicher old_vehshop

3.4 Dynamisches LOD / Streaming-Budget

Verwende den r_drivepad cvar, um die Sichtweite für KI-Verkehr zu verringern, wenn FPS < 50 auf Clients ist.

Weitere Vermögensberatung in Abschnitt 4.


4 · Optimierung auf Asset-Ebene

AnlagentypHarte GrenzeWerkzeugbau
.Jahresverlauf Textur≤ 16 MiBTexture Toolkit, GIMP DDS-Export
Prop-Polycount≤ 50 kBlender dezimieren + automatische LODs
.awc Audio-48000 Hz MonoAudacity-Neuabtastung

Gestreamte Daten befinden sich im RAM. Strom/ unter 1 GB oder es besteht die Gefahr, dass der Client aufgrund von unzureichendem Arbeitsspeicher abstürzt.

Weiterlesen → Ladezeiten optimieren.


5 · Datenbank und E/A

  • Verwenden mysql‑async oder oxmysql; vermeide synchrone MySQL.Sync.fetchAll innerhalb von Zecken.
  • Füge Indizes zu Spalten hinzu, die häufig abgefragt werden in WÄHLEN SIE ... WO ... Klauseln.
  • Cache unveränderliche Daten (z. B. Fahrzeugnamen) in Lua-Tabellen, nicht in DB-Abrufen.

6 · Kontinuierliche Überwachung und Regressionsschutz

  1. Automatisiert jede Nacht resmon_log 120 – CSV an Grafana weiterleiten.
  2. Git Pre-Commit-Hook Aufrufen des AI Script Optimizer.
  3. Belastungstest jeder PR mit ≥ der doppelten aktuellen Slot-Anzahl.

Zusätzliche serverseitige Zeiger → Performance steigern: Skripte optimieren.


7 · Wenn die Hardware die Wand ist

  • Ryzen 7 7800X3D > Intel i9‑14900K für Single‑Thread‑Latenz.
  • 64 GB DDR5 6000 CL30 zur Minimierung von Seitenfehlern.
  • NVMe Gen 4 SSD > 5000 MB/s für schnelles Karten-Streaming.

Gastgeber mit mindestens 1 Gbit/s hoch/runter; gemeinsam genutzte vCPU-Pläne deaktivieren.


8 · DSGVO und Datenschutz

Tun nicht IP-Adressen länger als betrieblich erforderlich protokollieren (Erwägungsgrund 39). Hash-Kennungen (SHA‑256) wenn du Analysen benötigst.

Stelle sicher, dass alle Drittanbieter-Analyseskripte SameSite=Lax und beim Abmelden löschen.


9 · Checkliste (für Ihr Admin-Team)

Was also tun? Hier kurz zusammengefasst:

#AufgabeKonkrete Aktion / BefehlKriterien für das Bestehen
Vor dem Flug
1Schnappschuss und Tagtar -czf backup_$(Datum +%F).tgz ~/fivem/Serverdaten && mysqldump -u root -p --single-transaction fivem > db.sql
Tag Git: Git-Tag prod-$(Datum +%F)
Offsite-Speicherung der Archive & Git CI grün
2ArtefaktparitätDokumentiere die FXServer-Build-Version, die im Staging getestet wurde (z. B. b6362)Dieselbe Buildnummer ist in der Produktion bereit
3WartungsfensterSpieler informieren, festlegen sv_login_token "" oder aktiviere txAdmin WartungsmodusKeine Neuzugänge; aktuelle Spieler gewarnt
Einsetzen
4Dienste sauber beendentxadmin stoppen oder Strg-C in der Konsole; warte auf “Speichere Karte…”Keine verwaisten FXServer-Prozesse
5Binärdateien aktualisierenErsetzen FXServer und alpin aus validiertem Artefakt-Zip./FXServer +Version festlegen zeigt Neubau
6Optimierte Anwendung server.cfgÜberprüfte Datei kopieren; ausführen +exec server.cfg +set comlint 1Keine „unbekannten Cvar“-Fehler
7Ressourcen kürzenVerschiebe ungenutzte Skripte in Ressourcen deaktiviert/; bestätigen mit sicherstellen Listeresmon zeigt entfernte Einträge
8Cache leeren und neu erstellenrm -rf cache/* Dann save_gta_cache meine Karte wenn große KartenCache-Ordner neu aufgefüllt
9DB-MigrationLaufen ÄNDERN/INDEX ERSTELLEN Skripte; Test mit ERKLÄRENKeine vollständigen Tabellenscans im Abfrageplan
10Starte gebunden an P-Kernentaskset -c 2-7 ./FXServer +exec server.cfgServer bootet; CPU-Affinität korrekt
Überprüfung (10 Min.)
11Live-MetrikenAntwort 1 in der KonsoleKeine Ressource > 1 ms lang andauernder Leerlauf
12Automatisierte Proberesmon_log 600 → CSVDurchschnittlicher Tick ≤ 6 ms; 99-tel ≤ 8 ms
13Join-LatenzStoppuhr-Join-to-Spawn mit frischem CacheZeit ≤ Basislinie – 10 %
14Funktionaler RauchtestTeleportieren, Artikel kaufen, Fahrzeug fahren, Garage speichernDie wichtigsten Gameplay-Pfade sind erfolgreich
Wachen nach dem Einsatz
15Grafana-FeedCron: `resmon_log 120curl -XPOST …/influx`
16CI-RegressionshakenPre-Commit führt AI Script Optimizer diff; Blöcke > +0,20 ms neue KostenHakenausfahrten 0 nur bei Grün
17Protokollrotation und HashingCron: 24 Stunden find logs/ -mtime +1 -exec shasum -a 256 {} ; -exec rm {}IPs werden ≤ 24 Stunden gespeichert (DSGVO Erwägungsgrund 39) gdpr-info.eu
18Backup-ÜberprüfungLetzten Snapshot auf Staging wiederherstellen; Testserver bootenSnapshot bootet; Daten intakt
19VersionshinweiseÄnderungsprotokoll und Verfügbarkeitsfenster in Discord posten; archivieren in /docs/releases.mdAnerkennung der Stakeholder
20Rollback-Plan bereitgit checkout prod- und kopiere das vorherige Backup-ManifestRollback im Staging getestet

Bevor du live gehst, friere Binärdateien und Konfiguration ein, erstelle ein sauberes Backup, deploye mit CPU-Affinität, führe erneut aus resmon bis jede Ressource unter 1 ms liegt, und behalte IP-Protokolle nicht länger als 24 h, um die GDPR-Speicherbegrenzung einzuhalten.


Abschluss

Lege eine numerische Basis fest, refaktoriere schwere Skripte mit resmon und der KI-Optimierer, schlanke Assets, Tune server.cfg, und wiederhole den Vorgang, bis die Tick-Zeit unter 6 ms bei Spitzenlast bleibt.


Quellen

Nach der Stabilisierung der Leistung, auditieren du den gesamten Pfad von der Entdeckung bis zur Verbindung mit dem FiveM Server-Liste Leitfaden.

Schreibe einen Kommentar