Skip to Content
🔥 Nová dokumentace BlazeHost.cz je online — prohlédnout
DokumentaceFiveMPerformance tuning

Performance tuning

Lagující FiveM server je téměř vždy vina jednoho nebo dvou špatně napsaných resources, ne slabého hardwaru. Tento článek ukazuje, jak viníka najít.

Jak měřit

Rozlišuj server tick a client FPS. Server tick měříš v konzoli, klientský výkon příkazem resmon ve hře.

Zapni resmon ve hře

Otevři klientskou konzoli klávesou F8 a napiš:

resmon 1

Přečti sloupec CPU time

Ukazuje, kolik milisekund resource spotřebuje na jeden snímek.

Najdi hříšníky

Cokoli nad 0.5 ms v klidovém stavu je podezřelé.

Referenční hodnoty

CPU timeHodnocení
do 0.05 msvýborné
0.05 – 0.20 msv pořádku
0.20 – 0.50 mske kontrole
nad 0.50 msproblém

Nejčastější příčina lagů je smyčka while true do ... Wait(0) end, která běží každý snímek i tehdy, když hráč nic nedělá. Zvyš Wait nebo smyčku ukonči.

Typická optimalizace skriptu

Špatně — běží 60× za sekundu pořád:

client.lua
CreateThread(function() while true do Wait(0) local ped = PlayerPedId() if IsPedInAnyVehicle(ped, false) then -- neco delej end end end)

Lépe — v klidu spí, zrychlí jen když je potřeba:

client.lua
CreateThread(function() while true do local wait = 500 local ped = PlayerPedId() if IsPedInAnyVehicle(ped, false) then wait = 0 -- neco delej end Wait(wait) end end)

Nastavení serveru

server.cfg
# OneSync - nutny pro vic nez 32 hracu set onesync on set onesync_population true # Snizeni zateze pri velkem poctu entit set onesync_distanceCullVehicles true set onesync_forceMigration true sv_maxclients 64

onesync_distanceCullVehicles výrazně sníží síťovou zátěž na velkých mapách — klienti nedostávají data o vozidlech, která nevidí.

Databázové dotazy

Pomalá databáze zpomalí celý server, protože dotazy blokují Lua vlákno.

  • Používej indexy na sloupci identifier.
  • Nedotazuj se v smyčce každý snímek.
  • Ukládej hráče dávkově, ne po každé změně.
CREATE INDEX idx_users_identifier ON users (identifier);

Nikdy nevolej MySQL.query uvnitř while true do Wait(0) smyčky. Zahltíš databázi a server přestane reagovat.

Stream a paměť klienta

Velké mapy zvyšují spotřebu paměti klienta. Pokud hráčům padá hra:

  1. Zmenši textury (.ytd) na rozumné rozlišení.
  2. Odeber nepoužívané mapy.
  3. Zkontroluj, že nemáš dvě mapy na stejném místě.

Checklist při lagách

Zkontroluj resmon

Najdi resource nad 0.5 ms.

Zastav podezřelý resource

stop podezrely-resource

Zlepšilo se to? Máš viníka.

Zkontroluj databázi

Pomalé dotazy poznáš podle prodlevy při přihlášení hráče.

Zkontroluj uptime

Server běží týden bez restartu? Restartuj — viz Scheduled restart.

Tipy

  • Neinstaluj skripty „na zkoušku” na produkci. Jeden špatný skript položí celý server.
  • Měř před i po. Bez čísel jen hádáš.

Poznámka

Náš hardware používá CPU s vysokým taktem právě kvůli FiveM, který je citlivý na výkon jednoho jádra. Upgrade tarifu ti přidá RAM, ne rychlejší jádro.

Související články