← Blog

Konfiguracja serwera DayZ: zasoby, mody i stabilna wydajność

Par Benjamin D. · PDG

· Mis à jour le 28 sierpnia 2026 · Lecture 7 min

Spis treści

Konfiguracja serwera DayZ to w praktyce ćwiczenie z bilansowania zasobów: liczba graczy, waga modów i rozmiar mapy decydują o tym, ile pamięci RAM i mocy pojedynczego rdzenia realnie potrzebujesz. Poniżej znajdziesz konkretne wartości, pliki, parametry startowe oraz metody diagnozy spadków server FPS — bez zgadywania, w oparciu o to, co faktycznie obciąża instancję.



Konfiguracja serwera DayZ: co naprawdę zjada zasoby

Silnik Enfusion mocno opiera się na jednym głównym wątku symulacji. Oznacza to, że częstotliwość zegara procesora ma większe znaczenie niż liczba rdzeni — instancja z 32 graczami na Chernarusie potrafi wysycić jeden rdzeń, podczas gdy pozostałe stoją niemal bezczynnie. Dlatego platformy oparte o Ryzen o wysokim taktowaniu i dyski NVMe dają odczuwalnie stabilniejszy tick niż maszyny z niskim zegarem i dużą liczbą wątków.

Cztery główne źródła obciążenia w DayZ:

  • AI (zombie i zwierzęta) — każdy aktywny agent to symulacja pathfindingu. Parametr ZombieMaxCount jest jedną z najskuteczniejszych dźwigni wydajności.
  • Persystencja — bazy graczy, skrzynie, namioty, pojazdy. Im dłużej wipe jest odległy, tym większy plik storage i dłuższy czas startu misji.
  • Pojazdy — fizyka pojazdów jest kosztowna obliczeniowo, zwłaszcza gdy kilkanaście z nich jeździ jednocześnie.
  • Mody — ładowane do pamięci przy starcie, część z nich dokłada własne pętle skryptowe wykonywane co klatkę.

Jeśli chcesz przejść od teorii do działającej instancji z gotowym panelem Pterodactyl, konsolą live i automatycznymi kopiami zapasowymi, sprawdź hosting DayZ — resztę artykułu potraktuj jako instrukcję strojenia tego, co już masz uruchomione.

Server FPS: jedyna metryka, która się liczy

Zanim zaczniesz dokładać RAM, włącz logowanie wydajności w serverDZ.cfg:

logAverageFps = 1;   // średni server FPS w logu
logMemory     = 1;   // zużycie pamięci procesu
logPlayers    = 1;   // liczba graczy w danym momencie
logFile       = "server_console.log";

Interpretacja wartości z loga:

Server FPSCo odczuwa graczDziałanie
45+Płynna rozgrywka, brak desynchronizacjiNic, monitoruj dalej
25–45Lekkie opóźnienia w walce wręcz i przy lootowaniuTuning ekonomii, ograniczenie AI
15–25Rubberbanding, opóźnione trafieniaRedukcja modów, wipe starej persystencji
<15Serwer praktycznie niegrywalnyWięcej RAM / mocniejszy rdzeń, audyt modów


Dobór RAM i CPU pod liczbę graczy, mapę i mody

Pamięć RAM w DayZ rośnie z trzech powodów: rozmiar mapy (terrain, obiekty, nawigacja), liczba załadowanych modów oraz stan persystencji. Poniższe wartości to bezpieczne punkty startowe dla instancji produkcyjnej, z zapasem na wzrost pliku storage po kilku tygodniach gry.

ScenariuszSlotyRAMUwagi
Vanilla Chernarus / Livonia10–304–6 GBDomyślna ekonomia, bez pojazdów modowanych
Vanilla, pełne obłożenie40–608 GBRezerwa na wzrost persystencji
Lekkie mody (CF, COT, Code Lock, Trader)30–508–10 GBKilkanaście modów, mapa waniliowa
DayZ Expansion Bundle (AI, pojazdy, misje)40–6012–16 GBExpansion AI potrafi podwoić obciążenie rdzenia
Mapy modowane (Deer Isle, Banov, Namalsk, Chiemsee)40–7016 GB+Duże tereny + własne obiekty = wyraźnie wyższy RAM

Procesor: zegar przed liczbą rdzeni

W praktyce DayZ wykorzystuje efektywnie 2–4 wątki, a symulacja świata i tak siedzi głównie na jednym. Parametr -cpuCount ustaw na realną liczbę dostępnych wątków, nie wyżej:

./DayZServer -config=serverDZ.cfg -port=2302 -profiles=profiles \
  -cpuCount=4 -limitFPS=60 -dologs -adminlog -netlog -freezecheck \
  -mod="@CF;@Community-Online-Tools;@Code Lock"

-limitFPS=60 ogranicza zużycie CPU bez odczuwalnej straty jakości symulacji. Ustawianie limitu poniżej 30 to prosta droga do desynchronizacji.

Dysk i I/O

Persystencja DayZ zapisuje się cyklicznie, a przy dużych bazach graczy operacje zapisu potrafią wywołać mikroprzycięcia na dyskach talerzowych. NVMe eliminuje ten problem i skraca czas ładowania misji z kilku minut do kilkudziesięciu sekund. Zarezerwuj też miejsce na mody: sam Expansion Bundle to kilka GB, a rozbudowane zestawy broni i pojazdów potrafią dobić do 30–40 GB.

Sieć i porty

Standardowy zestaw portów wygląda tak:

  • 2302 UDP — port gry (-port)
  • 2303 UDP — port pomocniczy silnika
  • 27016 UDP — Steam query (steamQueryPort)
  • 2310 TCP/UDP — RCON BattlEye (konfigurowany w BEServer_x64.cfg)

Ochrona przed atakami wolumetrycznymi jest realizowana po stronie infrastruktury Fly-Serv, więc na poziomie instancji skup się na tym, co kontrolujesz: mocnym haśle RCON, osobnym passwordAdmin i regularnych kopiach zapasowych folderu mpmissions oraz storage_1.



Mody: kolejność ładowania, klucze i wpływ na wydajność

Najczęstsza przyczyna „serwer wystartował, ale nikt nie może dołączyć” to nie brak RAM-u, tylko błędna kolejność modów albo brakujące klucze .bikey.

Zasady, których nie łamiemy

  1. Community Framework (@CF) zawsze pierwszy — większość modów skryptowych ma go jako zależność.
  2. Zależności przed modami zależnymi — np. @CF;@DayZ-Expansion-Bundle;@Trader.
  3. Każdy mod = klucz w folderze keys/, przy verifySignatures = 2; brak klucza oznacza odrzucenie połączenia.
  4. Mody czysto serwerowe (VPPAdminTools w trybie server-side, część narzędzi ekonomii) ładuj przez -serverMod=, żeby gracze nie musieli ich pobierać.
# klucze modów do folderu keys/
cp @CF/keys/*.bikey keys/
cp @DayZ-Expansion-Bundle/keys/*.bikey keys/

# start z rozdzieleniem modów klienckich i serwerowych
./DayZServer -config=serverDZ.cfg -port=2302 -profiles=profiles \
  -mod="@CF;@DayZ-Expansion-Bundle;@Trader" \
  -serverMod="@VPPAdminTools" -dologs -adminlog

Które mody kosztują najwięcej wydajności

Typ modaObciążenieNa co uważać
Bronie, ubrania, przedmioty (MuchStuffPack, SNAFU)Głównie RAMWymagają wpisów w types.xml, inaczej nie spawnują
Trader / bazy handloweNiskie CPUDuże pliki konfiguracji, mało pętli runtime
Expansion AI, patrole botówWysokie CPUKażdy patrol to dodatkowe agenty na głównym wątku
Modowane pojazdy i helikopteryWysokie CPU + persystencjaOgranicz liczbę eventów w events.xml
Rozbudowane budownictwo (BaseBuildingPlus)Rosnące w czasiePersystencja puchnie z każdym tygodniem

Metoda diagnozy jest prosta: dodawaj mody partiami po 3–5 i po każdej partii sprawdzaj średni server FPS z loga przy pełnym obłożeniu. Wrzucenie 40 modów naraz sprawia, że nie masz pojęcia, który z nich zjadł 15 klatek.

Aktualizacje modów a forceSameBuild

Po każdej większej aktualizacji gry warto trzymać:

verifySignatures = 2;
forceSameBuild   = 1;
guaranteedUpdates = 1;

Dzięki temu klienci z niezgodną wersją nie wejdą i nie zaśmiecą logów crashami. Aktualizuj mody przez panel Pterodactyl, restartując instancję, zamiast podmieniać pliki na żywo — DayZ trzyma część danych w pamięci i podmiana w locie kończy się uszkodzoną persystencją.



Ekonomia centralna i strojenie pod stabilny tick

Największe zyski wydajności w konfiguracji serwera DayZ dają nie zmiany sprzętowe, tylko ekonomia centralna. Pliki znajdziesz w mpmissions/dayzOffline.chernarusplus/db/.

globals.xml — pierwsze cięcia

<var name="ZombieMaxCount" type="0" value="600"/>
<var name="AnimalMaxCount" type="0" value="120"/>
<var name="IdleModeCountdown" type="0" value="60"/>
<var name="IdleModeStartup" type="0" value="1"/>
<var name="CleanupLifetimeDeadPlayer" type="0" value="1800"/>
<var name="CleanupLifetimeRuined" type="0" value="300"/>

Domyślny ZombieMaxCount na Chernarusie to 1000. Zejście do 600–700 często zwraca kilkanaście klatek server FPS przy pełnym serwerze, a gracze rzadko odczuwają różnicę poza dużymi miastami. IdleModeStartup sprawia, że pusty serwer nie symuluje świata i nie grzeje rdzenia bez powodu.

types.xml — lifetime zamiast nominal

Loot leżący w świecie to obiekty w pamięci. Zamiast obniżać nominal (co psuje odczucie ekonomii), skróć lifetime przedmiotom śmieciowym:

<type name="Rag">
    <nominal>80</nominal>
    <lifetime>3600</lifetime>
    <restock>0</restock>
    <min>40</min>
    <quantmin>-1</quantmin>
    <quantmax>-1</quantmax>
    <cost>100</cost>
</type>

Po każdej edycji sprawdź poprawność XML — jeden nieзamknięty tag i misja nie wstanie. W logach zobaczysz wtedy Cannot open file albo błąd parsowania w cfgeconomycore.xml.

Restarty i kopie zapasowe

DayZ akumuluje pamięć w trakcie działania. Harmonogram restartów co 3–4 godziny to standard, który realnie stabilizuje tick. Ustaw w serverDZ.cfg:

class Missions
{
    class DayZ
    {
        template = "dayzOffline.chernarusplus";
    };
};
serverTimeAcceleration = 6;
serverNightTimeAcceleration = 8;
serverTimePersistent = 1;
storageAutoFix = 1;
respawnTime = 5;
loginQueueConcurrentPlayers = 5;
loginQueueMaxPlayers = 500;

storageAutoFix = 1 naprawia uszkodzone wpisy persystencji zamiast wywalać misję. Mimo to trzymaj kopie zapasowe folderów storage_1 i całej misji — automatyczne backupy z panelu ratują wieczór, gdy po aktualizacji moda persystencja przestaje się wczytywać.

Mapy modowane: co się zmienia

Przy Deer Isle, Banovie czy Namalsku pamiętaj, że każda mapa ma własny folder misji i własne db/. Nie kopiuj ekonomii z Chernarusa — spawn pointy i eventy odwołują się do współrzędnych, których na innej mapie nie ma. Namalsk dokłada dodatkowe systemy (promieniowanie, burze), które same w sobie generują ruch na głównym wątku, więc obniż ZombieMaxCount agresywniej niż na mapach waniliowych.

Podobne zasady strojenia obowiązują w innych tytułach survivalowych i mil-sim — jeśli prowadzisz kilka społeczności, zajrzyj do Wszystkie nasze serwery gier albo do wpisów technicznych na Blog Fly-Serv, a szczegóły dotyczące modów Arma znajdziesz przy okazji tematu Serwer Arma 3. Pełną listę parametrów pliku konfiguracyjnego opisuje oficjalna dokumentacja Bohemia Interactive.



Podsumowanie

Dobierz pamięć do mapy i zestawu modów, postaw na wysoki zegar rdzenia, a potem strojenie prowadź na podstawie loga server FPS, a nie przeczuć. Ogranicz liczbę agentów AI, pilnuj kolejności ładowania modów i kluczy, restartuj cyklicznie i rób kopie persystencji. To wystarczy, by utrzymać płynną rozgrywkę nawet przy pełnym obłożeniu.



FAQ

Ile pamięci RAM potrzeba dla 50 graczy z modem DayZ Expansion?

Przy pełnym Expansion Bundle (AI, pojazdy, misje) zaplanuj 12–16 GB. Sam Expansion ładuje dużo zasobów do pamięci, a persystencja z bazami graczy rośnie z tygodnia na tydzień. Jeśli log pokazuje zużycie powyżej 85% dostępnej pamięci przy pełnym serwerze, zwiększ zasoby zanim pojawią się crashe misji.

Dlaczego gracze nie mogą dołączyć po dodaniu nowych modów?

Najczęściej brakuje pliku .bikey w folderze keys/ przy ustawieniu verifySignatures = 2;, albo kolejność w parametrze -mod= jest błędna — @CF musi być przed modami, które go wymagają. Sprawdź server_console.log: znajdziesz tam dokładną nazwę odrzuconego podpisu.

Jak szybko podnieść server FPS bez zmiany sprzętu?

Zacznij od globals.xml: obniż ZombieMaxCount do 600–700 i AnimalMaxCount do około 120, włącz IdleModeStartup. Następnie skróć lifetime lootu śmieciowego w types.xml, zredukuj liczbę eventów pojazdowych w events.xml i ustaw restarty co 3–4 godziny.