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
ZombieMaxCountjest 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 FPS | Co odczuwa gracz | Działanie |
|---|---|---|
| 45+ | Płynna rozgrywka, brak desynchronizacji | Nic, monitoruj dalej |
| 25–45 | Lekkie opóźnienia w walce wręcz i przy lootowaniu | Tuning ekonomii, ograniczenie AI |
| 15–25 | Rubberbanding, opóźnione trafienia | Redukcja modów, wipe starej persystencji |
| <15 | Serwer praktycznie niegrywalny | Wię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.
| Scenariusz | Sloty | RAM | Uwagi |
|---|---|---|---|
| Vanilla Chernarus / Livonia | 10–30 | 4–6 GB | Domyślna ekonomia, bez pojazdów modowanych |
| Vanilla, pełne obłożenie | 40–60 | 8 GB | Rezerwa na wzrost persystencji |
| Lekkie mody (CF, COT, Code Lock, Trader) | 30–50 | 8–10 GB | Kilkanaście modów, mapa waniliowa |
| DayZ Expansion Bundle (AI, pojazdy, misje) | 40–60 | 12–16 GB | Expansion AI potrafi podwoić obciążenie rdzenia |
| Mapy modowane (Deer Isle, Banov, Namalsk, Chiemsee) | 40–70 | 16 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
- Community Framework (@CF) zawsze pierwszy — większość modów skryptowych ma go jako zależność.
- Zależności przed modami zależnymi — np.
@CF;@DayZ-Expansion-Bundle;@Trader. - Każdy mod = klucz w folderze
keys/, przyverifySignatures = 2;brak klucza oznacza odrzucenie połączenia. - 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 moda | Obciążenie | Na co uważać |
|---|---|---|
| Bronie, ubrania, przedmioty (MuchStuffPack, SNAFU) | Głównie RAM | Wymagają wpisów w types.xml, inaczej nie spawnują |
| Trader / bazy handlowe | Niskie CPU | Duże pliki konfiguracji, mało pętli runtime |
| Expansion AI, patrole botów | Wysokie CPU | Każdy patrol to dodatkowe agenty na głównym wątku |
| Modowane pojazdy i helikoptery | Wysokie CPU + persystencja | Ogranicz liczbę eventów w events.xml |
| Rozbudowane budownictwo (BaseBuildingPlus) | Rosnące w czasie | Persystencja 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.
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.