Lag w Garry's Mod prawie zawsze wynika z jednej z trzech rzeczy: ustawionego tickrate'u wyższego niż serwer jest w stanie utrzymać, zbyt wielu propsów i encji, lub dodatku działającego przy każdym ticku. Pamięć rzadko jest przyczyną, dlatego często zakup większego planu nic nie zmienia.
Source uruchamia symulację na jednym wątku. Ten pojedynczy fakt wyjaśnia większość poniższych kwestii.
Tickrate to budżet, a nie ustawienie jakości
Tickrate to liczba razy na sekundę, kiedy serwer symuluje świat. Wyższy tickrate daje wrażenie płynniejszego działania, ale wymaga CPU przy każdym ticku, niezależnie od tego, czy dzieje się coś interesującego, czy nie.
Pułapką jest to, że tickrate mnoży wszystko inne. Sandbox z dużą ilością fizyki, który radzi sobie przy niższym tickrate, może się zawiesić przy wyższym, mimo braku innych zmian, ponieważ każdy prop jest symulowany częściej.
- Sandbox jest obciążony fizyką. Propy, ograniczenia i ragdolles kosztują przy każdym ticku, a gracze z czasem budują ich więcej.
- TTT i DarkRP zachowują się inaczej. Tryby rundowe mają skoki przy starcie rundy; serwery roleplay akumulują encje przez godziny.
- Podnoś tickrate dopiero, gdy serwer jest stabilny na niższym. To ostatni krok strojenia, nie pierwszy.
Propy i encje to prawdziwy koszt
Na serwerach Sandbox lub DarkRP działających długo, liczba encji rośnie bez udziału użytkownika.
- Limit propsów istnieje nie bez powodu. Serwer bez limitu przekona się o tym boleśnie, zwykle podczas sesji budowania.
- Konstrukcje z ograniczeniami kosztują więcej niż luźne propy. Ograniczenia fizyki są rozwiązywane co tick, a duże zespawane konstrukcje są znacznie droższe niż ta sama liczba oddzielnych propsów.
- Sprzątanie według harmonogramu. Automatyczne usuwanie propsów między rundami lub według timera to najskuteczniejsza zmiana na większości serwerów.
- Ragdolle i obiekty po rozbiciu się kumulują. Pojedynczo tanie, ale nie tanie w setkach.
Dodatki: zwykły podejrzany, którego nikt nie sprawdza
Dodatek, który wykonuje operacje przy każdym ticku, kosztuje cię sześćdziesiąt razy na sekundę i to cały czas. Większość tego nie reklamuje.
- Dodawaj dodatki małymi partiami, aby w razie spadku wydajności wiedzieć, co ją powoduje.
- Bądź podejrzliwy wobec wszystkiego, co reaguje na wydarzenia na całej mapie, a nie tylko w pobliżu gracza.
- Kolekcje Workshopu to pliki do pobrania dla każdego dołączającego gracza. Duża kolekcja jest barierą dla dołączających, równie znaczącą jak obciążenie serwera. Serwery Sandbox odczuwają to najbardziej: zobacz Sandbox mastery.
Ta sama zasada decyduje o wyborze modów w Factorio: ile kosztują na tick, i czy wszyscy muszą je mieć zainstalowane.
Diagnozuj przed ulepszeniem
Pracuj według tej kolejności, ponieważ tanie rozwiązania są też najbardziej prawdopodobne:
- Policz encje. Jeśli liczba rośnie przez cały dzień, to jest problem.
- Wyłącz dodatki partiami i obserwuj, czy spadek wydajności ustępuje.
- Obniż tickrate o jeden krok i zobacz, czy przestoje znikną.
- Sprawdź pamięć na końcu. Jeśli nie jest pełna i nie występują skoki użycia, RAM nie jest wąskim gardłem.
To ta sama kolejność, którą stosujemy w przypadku opóźnień ticków w Minecraft, gdzie więcej pamięci również nie pomaga serwerowi zależnemu od CPU. Inna gra, ten sam błąd.
Nasz hosting serwerów Garry's Mod udostępnia zarządzanie tickrate i dodatkami bezpośrednio z panelu, więc testowanie niższego tickrate wymaga jedynie restartu, a nie zgłoszenia do wsparcia.
Kiedy plan jest naprawdę za mały
Pamięć stanowi ograniczenie, gdy serwer się wyłącza, a nie tylko zwalnia: crash przy zmianie mapy lub niepowodzenie ładowania dużej kolekcji Workshop przy starcie. To prawdziwy powód, by przejść na wyższy plan. Serwer, który działa dobrze, ale ma przestoje podczas budowania, nie wymaga tego.
Jeśli prowadzisz serwer do budowania dla sześciu znajomych, najmniejszy plan z limitem propsów sprawdzi się lepiej niż większy plan bez limitu.

przez 


