
Ottimizzazione del server FiveM: il manuale definitivo per il 2025
Pubblico: Proprietari di server e amministratori di sistema esperti che desiderano portare al limite un'istanza FiveM di produzione, mantenendo al contempo stabilità e una gestione dei dati conforme al GDPR.
Obiettivo: Ridurre concretamente il tempo di frame, ridurre la latenza di join e liberare cicli di CPU senza compromettere il gameplay.
Inizia – Misura prima di modificare
- Prima il backup. Crea una copia esterna del tuo intero
dati del servercartella e database. (ecco come effettuare il backup) - Stabilire una corsa di riferimento:
# Nella console resmon 1 # metriche live – vedere Sezione 1 profilemode server sv_maxclients 32 # corrispondenza popolazione corrente per numeri di confronto - Documentazione:
- Tempo di spunta (SM)
- Utilizzo medio di risonanze per risorsa
- Tempo di join-to-spawn (cronometro)
Perché? L'ottimizzazione senza una base di riferimento è un'operazione azzardata. Memorizza questi numeri in modo da poter annullare qualsiasi modifica che peggiori la situazione.
Utilizzo resmon Come un professionista (guida dettagliata)

| Comando | Cosa fa | Obiettivo tipico |
|---|---|---|
resmon 1 | Avvia il monitoraggio delle risorse in tempo reale. | Server di sviluppo. |
resmon_log | Scarica le medie in un file CSV. | Campionamento di produzione. |
Regole pratiche
- ≤ 0,40 ms utilizzo inattivo → mantenere.
- 0,40 – 1,00 ms → ottimizzare presto.
- > 1,00 ms → rielaborare o disabilitare.
Se Processore % le punte coincidono con ~33 FPS gli FPS del server diminuiscono, il collo di bottiglia è il tuo copione, non hardware host.
Modifiche a livello di configurazione
2.1 server.cfg Elementi essenziali
# Rete onesync on # obbligatorio per >32 slot sv_maxclients 64 # aumentare SOLO se il tempo di tick < 6 ms dopo l'ottimizzazione sv_maxrate 65000 # byte/s per client (≈ 520 kbps) sv_minrate 25000 sv_packetLoss 0.05 # disconnessione se si mantiene una perdita del 5 % # Prestazioni set sv_enhancedDriver true # solo build FXServer più recenti sets gamename "gta5" # evitare fallback legacy
Nota di incertezza: sv_enhancedDriver è sperimentale negli artefatti < 6368; verificare il changelog.
2.2 Sistema operativo e host
- Ubuntu 22.04 LTS o Windows Server 2022
- Disabilitare gli stati C (BIOS) e impostare Prestazione governatore
- Legamento Server FX ai core ad alte prestazioni:
set di attività-c 2-7 fxserver +exec server.cfg
3 · Ottimizzazione a livello di risorse
3.1 Rifattorizzare i cicli costosi
-- ⚠️ Anti‑pattern (esegue ogni frame) Citizen.CreateThread(function() while true do -- NO wait local p = PlayerPedId() SetPedInfiniteAmmoClip(p, true) end end) -- ✅ Buono: cache + ritardo local p = PlayerPedId() Citizen.CreateThread(function() while true do SetPedInfiniteAmmoClip(p, true) Wait(1000) -- 1 sec end end)
3.2 Sfruttare il Ottimizzatore di script FiveM (AI) → provalo
Incolla il tuo script Lua: il modello segnala loop infiniti stretti, nativi ridondanti e offre suggerimenti di patch automatiche. Controlla sempre l'output diff riga per riga prima di procedere alla distribuzione.
3.3 Disabilitare le risorse inutilizzate
garantire solo ciò di cui hai effettivamente bisogno. Commenta gli script legacy:
# assicura old_vehshop
3.4 LOD dinamico / Budget di streaming
Utilizzare il r_drivepad cvar per ridurre la distanza di visualizzazione per il traffico AI quando FPS < 50 sui client.
Ulteriori consigli sugli asset sono disponibili nella Sezione 4.
4 · Ottimizzazione a livello di asset
| Tipo di risorsa | Limite massimo | Utensili |
.anno corrente struttura | ≤ 16 MiB | Texture Toolkit, esportazione GIMP DDS |
| Conteggio poligonale di Prop | ≤ 50 k | Blender decima + LOD automatici |
.awc audio | 48000 Hz mono | Ricampionamento di Audacity |
I dati trasmessi in streaming risiedono nella RAM. Mantieni flusso/ Sotto 1 GB totale o rischio di crash del client per mancanza di memoria.
Ulteriori letture → Ottimizzare i tempi di caricamento.
5 · Database e I/O
- Utilizzo mysql-asincrono O oxmysql; evitare sincronismo
MySQL.Sync.fetchAllzecche interne. - Aggiungere indici sulle colonne interrogate frequentemente in
SELEZIONA ... DOVE ...clausole. - Memorizza nella cache i dati immutabili (ad esempio i nomi dei veicoli) nelle tabelle Lua, non nei risultati del DB.
6 · Monitoraggio continuo e protezioni di regressione
- Automatizzato ogni notte
resmon_log 120– trasferire CSV a Grafana. - Hook di pre-commit git richiamando l'AI Script Optimizer.
- Test di carico ogni PR con ≥ doppio del numero di slot correnti.
Ulteriori puntatori lato server → Migliorare le prestazioni: ottimizzare gli script.
7 · Quando l'hardware è il muro
- Ryzen 7 7800X3D > Intel i9‑14900K per latenza single-thread.
- 64 GB DDR5 6000 CL30 per ridurre al minimo gli errori di pagina.
- SSD NVMe Gen 4 > 5000 MB/s per lo streaming veloce delle mappe.
Ospita con almeno 1 Gbps su/giù; disabilita i piani vCPU condivisi.
8 · GDPR e privacy
Fare non registrano gli IP più a lungo del necessario a livello operativo (considerando 39). Identificatori hash (SHA‑256) se hai bisogno di analisi.
Assicurati che tutti gli script di analisi di terze parti siano impostati SameSite=Lax e cancella al momento del logout.
9 · Lista di controllo (per il tuo team amministrativo)
Quindi, cosa fare? Ecco in sintesi:
| # | Compito | Azione/comando concreto | Criteri di superamento |
|---|---|---|---|
| Pre-volo | |||
| 1 | Istantanea e tag | tar -czf backup_$(data +%F).tgz ~/fivem/server-data && mysqldump -u root -p --single-transaction fivem > db.sqlEtichetta Git: git tag prod-$(data +%F) | Archivi archiviati fuori sede e Git CI verde |
| 2 | Parità degli artefatti | Documento FXServer build testato in staging (ad esempio b6362) | Stesso numero di build pronto per la produzione |
| 3 | Finestra di manutenzione | Informare i giocatori, impostare token di accesso sv "" o abilita txAdmin modalità di manutenzione | Nessun nuovo arrivo; giocatori attuali avvisati |
| Distribuire | |||
| 4 | Interrompere i servizi in modo pulito | arresto txadmin O Ctrl-C nella console; attendi “Salvataggio mappa…” | Nessun processo FXServer orfano |
| 5 | Aggiorna i binari | Sostituire Server FX e alpino da zip di artefatto convalidato | ./FXServer +imposta versione mostra la nuova build |
| 6 | Applica ottimizzato server.cfg | Copia il file revisionato; esegui +exec server.cfg +set comlint 1 | Nessun errore "cvar sconosciuto" |
| 7 | Ridurre le risorse | Sposta gli script non utilizzati in risorse-disabilitate/; confermare con garantire lista | resmon mostra le voci rimosse |
| 8 | Cancella e ricostruisci la cache | rm -rf cache/* Poi salva_gta_cache la mia mappa se mappe di grandi dimensioni | Cartella cache ripopolata |
| 9 | Migrazione del database | Correre MODIFICARE/CREA INDICE script; test con SPIEGARE | Nessuna scansione completa della tabella nel piano di query |
| 10 | Inizio vincolato ai core P | set di attività -c 2-7 ./FXServer +exec server.cfg | Avvio del server; affinità CPU corretta |
| Verifica (10 min) | |||
| 11 | Metriche in tempo reale | resmon 1 nella console | Nessuna risorsa > 1 ms inattivo a lungo termine |
| 12 | Campione automatizzato | resmon_log 600 → CSV | Tick medio ≤ 6 ms; 99-esimo ≤ 8 ms |
| 13 | Latenza di adesione | Cronometro per l'unione e la generazione con cache nuova | Tempo ≤ baseline – 10 % |
| 14 | Test funzionale del fumo | Teletrasporto, acquisto oggetto, guida veicolo, salvataggio garage | I percorsi di gioco principali hanno successo |
| Guardie post-schieramento | |||
| 15 | Feed Grafana | Cron: `resmon_log 120 | curl -XPOST …/influsso` |
| 16 | Gancio di regressione CI | Esegue il pre-commit AI Script Optimizer diff; blocca > +0,20 ms nuovo costo | Il gancio esce solo da 0 sul verde |
| 17 | Rotazione dei log e hashing | Cron: 24 ore trova logs/ -mtime +1 -exec shasum -a 256 {} ; -exec rm {} | IP conservati ≤ 24 ore (considerando 39 del GDPR) gdpr-info.eu |
| 18 | Verifica del backup | Ripristina l'ultimo snapshot nello staging; avvia il test-server | Avvio snapshot; dati intatti |
| 19 | Note di rilascio | Pubblica il changelog e la finestra di uptime su Discord; archivia in /docs/releases.md | Le parti interessate sono state riconosciute |
| 20 | Piano di rollback pronto | git checkout prod- e copia il manifesto del backup precedente | Rollback testato in staging |
Prima di andare in diretta, congelare i binari e la configurazione, creare un backup pulito, distribuire con affinità CPU, eseguire nuovamente resmon finché ogni risorsa non raggiunge < 1 ms e conserva i log IP per non più di 24 ore per rientrare nei limiti di archiviazione del GDPR.
Conclusione
Stabilisci una base numerica, rielabora gli script pesanti con resmon e l'ottimizzatore AI, risorse snelle, sintonizzazione server.cfge ripetere finché il tempo di tick non rimane al di sotto di 6 ms al picco di carico.
Fonti
- Come ottimizzare le prestazioni del server FiveM
- Ottimizzare i tempi di caricamento
- Migliorare le prestazioni: ottimizzare gli script
- FiveM Script Optimizer (strumento di intelligenza artificiale)
- Come usare resmon






