Poprawa wydajności serwera Rust: kompletny poradnik

Rust jest jedną z najbardziej wymagających gier multiplayer survival, jeśli chodzi o sprzęt serwera. Połączenie dużego otwartego świata, setek graczy, złożonych baz, wrogów AI i obliczeń fizyki sprawia, że serwer Rust potrzebuje więcej zasobów niż praktycznie każdy inny serwer gry. Mimo to wiele serwerów działa z niepotrzebnym lagiem, ponieważ konfiguracja nie jest zoptymalizowana. W tym poradniku omawiamy wszystkie aspekty optymalizacji serwera Rust: od sprzętu i ustawień serwera po zarządzanie pluginami i wybór mapy.

Dlaczego Rust jest tak wymagający dla serwerów?

Aby zrozumieć, jak poprawić wydajność, warto wiedzieć, dlaczego Rust wymaga tak wiele od serwera:

  • Duży proceduralny świat. Standardowa mapa Rust ma 4000 x 4000 metrów, z milionami obiektów: drzewa, kamienie, zwierzęta, budynki i więcej. Wszystkie te obiekty są śledzone przez serwer.
  • Bazy graczy. Gracze Rust budują rozbudowane bazy z setkami lub tysiącami elementów budowlanych. Każda ściana, drzwi, skrzynia i piec to osobny obiekt, który serwer musi przetwarzać.
  • Obiekty AI. Naukowcy przy pomnikach, helikoptery, Bradley APC i zwierzęta mają rutyny AI, które zużywają cykle procesora.
  • Decay i utrzymanie. Serwer ciągle oblicza niszczenie budynków i sprawdza, czy tool cupboard zawiera wystarczające zasoby.
  • Netcode. Rust ciągle wysyła aktualizacje pozycji, zmiany ekwipunku i dane otoczenia do wszystkich graczy w zasięgu. Przy 100+ graczach na serwerze to ogromna ilość danych.

Z powodu tych czynników wybór odpowiedniego sprzętu i konfiguracji jest kluczowy.

Sprzęt: czego potrzebuje serwer Rust?

Wymagania sprzętowe zależą od liczby graczy i rozmiaru mapy. Oto wytyczne na 2026 rok:

Profil serweraRAMCPUDysk
Solo/duo, 50 graczy, mapa 30008 GB4+ GHz singlethread10 GB NVMe
Vanilla, 100 graczy, mapa 350010 do 12 GB4,5+ GHz singlethread15 GB NVMe
Modded, 150 graczy, mapa 400012 do 16 GB4,5+ GHz singlethread20 GB NVMe
Modded, 250+ graczy, mapa 450016 do 24 GB5+ GHz singlethread30+ GB NVMe

Kluczowym czynnikiem jest wydajność jednowątkowa. Pętla gry Rust działa w dużej mierze na jednym rdzeniu. Procesor z wysoką częstotliwością taktowania na rdzeń, taki jak AMD Ryzen 9 7950X (do 5,7 GHz boost), który HostValues wykorzystuje w swoim hostingu Rust, zapewnia znacznie lepszą wydajność niż procesor serwerowy z wieloma rdzeniami, ale niższymi częstotliwościami.

Dyski NVMe są równie niezbędne. Rust zapisuje pełny stan gry w pliku .sav, który przy dużych serwerach może mieć setki megabajtów. Okresowy zapis (domyślnie co 5 minut) może na wolnym dysku powodować odczuwalny lag. Dyski NVMe redukują ten lag zapisu do ułamka tego, czego wymaga dysk SATA.

Najważniejsze zmienne serwera

Rust oferuje dziesiątki convarów (zmiennych konsolowych), za pomocą których można wpływać na wydajność serwera. Oto najważniejsze:

server.tickrate

Tickrate określa, ile razy na sekundę serwer aktualizuje stan gry. Domyślna wartość to 30. Wielu administratorów serwerów myśli, że wyższy tickrate (60 lub nawet 128) daje lepszą wydajność, ale to błędne przekonanie. Wyższy tickrate podwaja obciążenie CPU bez realnych korzyści dla Rust. Netcode i fizyka Rust są zaprojektowane na 30 ticków na sekundę. Zostaw to na 30, chyba że masz bardzo mocny serwer z małą liczbą graczy.

gc.buffer

To jedno z najbardziej wpływowych ustawień. Rust działa na Unity, który używa garbage collectora (GC) do zwalniania nieużywanej pamięci. Domyślnie GC regularnie zwalnia pamięć, co powoduje krótkie skoki lagów („stuttery"). Za pomocą gc.buffer możesz ustawić, ile pamięci serwer może buforować, zanim GC zacznie działać.

Zalecane ustawienia:

  • Serwery z 8 do 12 GB RAM: gc.buffer 256
  • Serwery z 12 do 16 GB RAM: gc.buffer 512
  • Serwery z 16+ GB RAM: gc.buffer 1024 lub wyżej

Wyższa wartość gc.buffer oznacza, że GC działa rzadziej, co daje mniej stutterów. Wadą jest to, że serwer zużywa więcej pamięci. Upewnij się, że masz wystarczająco dużo RAM, bo jeśli serwer przekroczy pamięć fizyczną i przejdzie na swap, wydajność będzie dramatycznie gorsza niż jakikolwiek stutter GC.

server.saveinterval

Domyślnie Rust zapisuje stan gry co 600 sekund (10 minut). Podczas zapisu serwer może się na chwilę zatrzymać, szczególnie na dużych serwerach. Możesz wydłużyć ten interwał do 900 lub 1200 sekund, jeśli krótkie zamrożenia są uciążliwe, ale pamiętaj, że przy awarii stracisz więcej danych. Kompromisem jest pozostawienie interwału na 600 i zainwestowanie w dyski NVMe, aby zminimalizować czas zapisu.

server.maxplayers

Ustaw to na liczbę graczy, którą Twój sprzęt obsłuży, a nie na liczbę, którą masz nadzieję uzyskać. Serwer skonfigurowany na 300 graczy, ale ze sprzętem na 100, zapewnia złe doświadczenie dla wszystkich. Zacznij konserwatywnie i zwiększaj maksimum w miarę, jak widzisz, że serwer daje radę.

fps.limit

Ogranicz FPS serwera (klatki na sekundę; w kontekście serwera: ticki na sekundę, które serwer próbuje osiągnąć). Domyślna wartość to 256, co jest niepotrzebnie wysokie. Ustaw to na 60 lub nawet 30, aby zaoszczędzić cykle CPU. Serwer nie musi działać szybciej niż dyktuje tickrate.

Optymalizacja rozmiaru mapy i seeda

Rozmiar mapy ma bezpośredni wpływ na wydajność serwera:

  • Mapa 3000: kompaktowa, odpowiednia dla 50 do 75 graczy. Mniej obiektów, mniej AI, szybsze zapisy.
  • Mapa 3500: optymalny punkt dla większości serwerów z 75 do 150 graczami.
  • Mapa 4000: standardowy rozmiar Rust, odpowiedni dla 150 do 250 graczy z odpowiednim sprzętem.
  • Mapa 4500+: tylko dla dużych serwerów z mocnym sprzętem. Liczba obiektów rośnie wykładniczo z rozmiarem mapy.

Seed (numer generacji mapy) również wpływa na wydajność. Niektóre seedy generują więcej wody, mniej pomników lub niekorzystny rozkład zasobów. Użyj narzędzia takiego jak RustMaps.com, aby wcześniej przejrzeć seedy i wybrać seed pasujący do liczby graczy i koncepcji serwera.

Dla mniejszej społeczności (serwer solo/duo z 50 do 75 graczami) idealna jest mapa od 2500 do 3000. Walki są częstsze, czasy podróży krótsze, a serwer działa płynniej.

Optymalizacja pluginów Oxide/uMod

Większość modowanych serwerów Rust używa Oxide (obecnie znany jako uMod), frameworka umożliwiającego pluginy w C#. Pluginy dodają funkcjonalność, ale źle napisane lub zbyt liczne pluginy są główną przyczyną lagów na modowanych serwerach.

Porady dotyczące optymalizacji pluginów:

  • Mniej znaczy więcej. Każdy dodany plugin wykonuje kod na serwerze. Regularnie oceniaj, czy naprawdę potrzebujesz każdego plugina. Serwer z 30 dobrze dobranymi pluginami działa lepiej niż serwer z 80, z których połowa jest zbędna.
  • Użyj profilera wydajności Oxide. Polecenie oxide.profiler start (i po minucie oxide.profiler stop) pokazuje, które pluginy zużywają najwięcej czasu CPU. Usuń lub zamień najcięższe.
  • Unikaj pluginów używających wielu hooków OnTick. Pluginy wykonujące kod co tick (30 razy na sekundę) są wykładniczo cięższe niż pluginy sterowane zdarzeniami. Sprawdź kod źródłowy lub dokumentację pluginów.
  • Wybieraj zoptymalizowane warianty. Popularne pluginy mają czasem wiele wersji. Zawsze wybieraj wariant specjalnie zoptymalizowany pod kątem wydajności.
  • Ogranicz zapisy na dysk. Pluginy zapisujące dużo danych na dysk (rankingi, statystyki, logowanie) powodują lag I/O. Ustaw ich interwał zapisu jak najwyżej.

Zmniejszanie liczby encji

Całkowita liczba encji (obiektów) na serwerze jest jednym z najważniejszych wskaźników wydajności. Aktualną liczbę możesz sprawdzić poleceniem serwera ent kill (uwaga: to polecenie pokazuje liczbę; nie użyj go przypadkowo do usuwania encji). Lub użyj global.entity_count.

Sposoby kontrolowania liczby encji:

  • Przyspieszenie decay. Ustaw server.pve false (domyślnie) i ewentualnie dostosuj decay.scale, aby porzucone bazy szybciej się rozkładały. Porzucone bazy są dużym źródłem encji.
  • Ograniczenie maksymalnego rozmiaru budowli. Pluginy takie jak „Building Grade Limiter" lub „Entity Limit" ograniczają liczbę elementów budowlanych na gracza lub na tool cupboard.
  • Regularne wipy. Większość serwerów Rust wipuje co miesiąc (wipe mapy) lub co tydzień (serwery modowane). Po wipie liczba encji wraca do zera, co natychmiast poprawia wydajność.
  • Usuwanie nieużywanych encji. Puste śpiwory, porzucone skrytki i upuszczone przedmioty, których nikt nie podnosi: wszystkie się liczą. Pluginy takie jak „Stash Remover" lub standardowy system decay pomagają w tym.

Optymalizacja sieci

Wydajność sieci jest co najmniej tak samo ważna jak wydajność serwera. Gracze odczuwają lag, gdy sieć jest wolna lub niestabilna, niezależnie od szybkości obliczeń serwera.

  • Lokalizacja serwera. Wybierz lokalizację blisko swojej grupy docelowej. Dla polskiej społeczności idealny jest serwer w Europie. HostValues oferuje wiele europejskich lokalizacji, abyś mógł wybrać najniższy ping.
  • Ochrona przed DDoS. Popularne serwery Rust są częstym celem ataków DDoS, często ze strony sfrustrowanych graczy lub konkurencyjnych serwerów. Profesjonalna ochrona przed DDoS, standardowo dołączona do hostingu Rust HostValues, filtruje ataki, zanim dotrą do Twojego serwera.
  • server.netcachesize. To ustawienie określa rozmiar pamięci podręcznej sieci. Wyższa wartość może pomóc przy serwerach z wieloma graczami, ale zużywa więcej pamięci. Domyślnie 16; dla serwerów z 100+ graczami możesz spróbować 32 lub 64.

Optymalizacja dnia wipe

Pierwsze godziny po wipie są najcięższe dla serwera Rust. Wszyscy gracze logują się jednocześnie, mapa generuje teren i struktury, a liczba encji rośnie gwałtownie. Porady na płynny dzień wipe:

  • Wygeneruj mapę z wyprzedzeniem. Użyj polecenia server.seed [seed] server.worldsize [rozmiar] i uruchom serwer raz bez graczy, aby wygenerować mapę. Przy właściwym wipie serwer ładuje wcześniej wygenerowaną mapę, co jest szybsze.
  • Tymczasowo ogranicz liczbę graczy. Zmniejsz maxplayers na pierwsze 30 do 60 minut, aby nie przeciążyć serwera podczas fazy inicjalizacji.
  • Aktywnie monitoruj serwer. Śledź FPS serwera i liczbę encji przez RCON lub panel webowy. Jeśli FPS spadnie poniżej 15, jest problem wymagający natychmiastowej uwagi.
  • Restart po pierwszym szczycie. Restart po 2 do 4 godzinach czyści pamięć i daje garbage collectorowi czystą kartę.

RCON i monitoring

Dobrze monitorowany serwer to stabilny serwer. Używaj RCON (Remote Console) do zdalnego zarządzania i monitorowania serwera:

  • RustAdmin: popularny darmowy klient RCON dla Windows z interfejsem graficznym.
  • BattleMetrics: rozwiązanie RCON oparte na przeglądarce ze statystykami graczy, zarządzaniem banami i wykresami wydajności.
  • Monitorowanie FPS serwera. Polecenie perf w konsoli serwera pokazuje aktualny FPS serwera. Stabilne 30 to cel. Poniżej 20 gracze odczuwają lag; poniżej 10 serwer jest praktycznie niegrywny.
  • Śledzenie liczby encji. Monitoruj global.entity_count w trakcie cyklu wipe. Jeśli liczba przekroczy 200 000 do 300 000 na przeciętnym serwerze, spodziewaj się problemów z wydajnością.

Najczęstsze błędy

Te błędy regularnie obserwujemy u administratorów serwerów Rust:

  • Za duża mapa dla zbyt małej liczby graczy. Mapa 4500 dla 50 graczy jest pusta i marnuje zasoby. Wybierz rozmiar mapy pasujący do Twojej społeczności.
  • Zwiększanie tickrate do 60 lub 128. To nie pomaga i pogarsza sytuację. Rust jest zaprojektowany na 30 ticków.
  • Brak monitorowania pamięci. Jeśli serwer przejdzie na swap, wydajność jest katastrofalna. Monitoruj zużycie pamięci i rozszerz RAM, zanim do tego dojdzie.
  • Brak ustawienia bufora GC. Domyślny gc.buffer to 0, co powoduje częste i odczuwalne stuttery. Zawsze to ustawiaj.
  • Kopiowanie wszystkich pluginów z innego serwera. Każdy serwer ma inny kontekst i liczbę graczy. To, co działa na serwerze z 300 graczami i dedykowanym sprzętem, może całkowicie położyć serwer ze 100 graczami na współdzielonym hostingu.

Checklista: optymalizacja serwera Rust

Użyj tej checklisty, aby krok po kroku zoptymalizować swój serwer:

  1. Sprawdź, czy Twój sprzęt spełnia wymagania: wydajność jednowątkowa jest najważniejsza. AMD Ryzen 9 7950X lub porównywalny.
  2. Używaj dysków NVMe dla szybkich zapisów.
  3. Ustaw gc.buffer na podstawie dostępnego RAM (256 do 1024+).
  4. Utrzymuj server.tickrate na 30.
  5. Ustaw fps.limit na 60.
  6. Wybierz rozmiar mapy pasujący do liczby graczy.
  7. Użyj profilera Oxide, aby zidentyfikować ciężkie pluginy.
  8. Codziennie monitoruj liczbę encji i FPS serwera.
  9. Planuj regularne wipy, aby resetować liczbę encji.
  10. Zapewnij ochronę przed DDoS i lokalizację serwera blisko graczy.

Najczęściej zadawane pytania

Ile RAM potrzebuje serwer Rust minimalnie?

Dla małego serwera z 50 graczami i mapą 3000, 8 GB to absolutne minimum, ale 10 GB jest wygodniejsze. Dla 100+ graczy zalecane jest 12 do 16 GB. Modowane serwery z wieloma pluginami zawsze potrzebują więcej niż serwery vanilla z tą samą liczbą graczy. Pamiętaj też o gc.buffer: to ustawienie rezerwuje dodatkową pamięć dla garbage collectora. Jeśli ustawisz gc.buffer na 512, dodaj to do swoich podstawowych potrzeb.

Dlaczego mój serwer Rust laguje po kilku dniach?

Najczęstszą przyczyną jest rosnąca liczba encji. W miarę jak gracze budują, upuszczają przedmioty i rozbudowują bazy, rośnie liczba obiektów, które serwer musi śledzić. Porzucone bazy, które nie rozpadają się wystarczająco szybko, pogarszają sytuację. Sprawdź liczbę encji poleceniem global.entity_count. Jeśli przekroczy 200 000, rozważ przyspieszony decay dla porzuconych baz lub wcześniejszy wipe. Inną przyczyną jest zużycie pamięci: jeśli serwer stopniowo zużywa więcej pamięci i ostatecznie przechodzi na swap, wszystko staje się wolne. Monitoruj zużycie RAM i restartuj serwer co tydzień jako środek zapobiegawczy.

Czy powinienem używać serwera dedykowanego czy VPS do Rust?

Dla małych serwerów (do 50 graczy) dobry VPS jest wystarczający, pod warunkiem że oferuje dyski NVMe, szybki procesor i wystarczającą ilość RAM. W HostValues serwery VPS działają na sprzęcie AMD Ryzen 9 7950X, co daje tę samą jakość procesora co maszyny dedykowane. Dla dużych serwerów ze 100+ graczami niezbędny jest serwer dedykowany lub VPS z wystarczającymi przydzielonymi zasobami. Zaletą VPS jest elastyczność: możesz łatwo skalować, gdy Twoja społeczność rośnie, bez konieczności migracji na inny sprzęt. Dla większości serwerów Rust pakiet hostingu Rust lub mocny VPS od HostValues to najlepszy wybór.

Podsumowanie

Optymalizacja serwera Rust opiera się na trzech filarach: odpowiedni sprzęt, rozsądne ustawienia serwera i kontrolowane użycie pluginów. Zainwestuj w procesor z wysoką wydajnością jednowątkową i dyski NVMe, ustaw gc.buffer, śledź liczbę encji i regularnie oceniaj swoje pluginy. Aktywnie monitoruj serwer i nie bój się zacząć konserwatywnie z maksymalną liczbą graczy.

Szukasz serwera Rust z odpowiednim sprzętem? W HostValues wszystkie serwery Rust działają na procesorach AMD Ryzen 9 7950X z dyskami NVMe i ochroną przed DDoS. Sprawdź też kalkulator RAM, aby określić, ile pamięci potrzebuje Twój serwer. Wszystkie pakiety są z możliwością rezygnacji co miesiąc.


Nadal masz pytania? Utworz ticket, a nasz zespol Ci pomoze.

Powrot do bloga