Narzędzia użytkownika

Narzędzia witryny


szukanie_przyczyn_lagow_sparkiem

Czym jest Spark?

Spark jest to plugin dzięki któremu w prosty sposób można zdiagnozować co powoduje tak zwane lagi na naszym serwerze minecraft. Jeśli wykonałeś optymalizację serwera ale nadal na serwerze są lagi bardzo prawdopodobne jest to, że któraś z modyfikacji lub pluginu którą mamy na serwerze jest słabo zoptymalizowana i przez nią pojawiają się na serwerze lagi. Dzięki sparkowi możemy odkryć który konkretnie plugin, powoduje problemy.

Pobieranie i instalacja Sparka

W pierwszej kolejności musimy wybrać jeden ze zoptymalizowanych silników takich jak: PaperSpigot, Purpur, Pufferfish. Wszystkie silniki dostępne są w panelu zarządzania serwerem. Poradnik jak zmienić silnik: zmiana wersji serwera. Po zmianie silnika i uruchomieniu serwera wpisujemy komendę /plugins i upewniamy się czy nie ma na liście Sparka. Niektóre wersje silnika mają go wbudowanego i nie trzeba dodawać go do katalogu plugins. Jeśli nie ma na liście Sparka, pobieramy go z oficjalnej strony spigotmc.org i wgrywamy go tak samo jak każdy inny plugin. Poradnik jak wgrać plugin: jak wgrywać pluginy

Podstawowa komenda /tps

Aby sprawdzić czy Spark zainstalował się prawidłowo wpisujemy komendę /tps

Powinno wyświetlić się to co na zdjęciu. Z tej komendy możemy odczytać:

  • TPS czyli ilość ticków na sekundę. Maksymalna wartość to 20,
  • Tick durations czyli czas trwania 1 ticka w milisekundach.

Jeśli nasze TPSy są pokazane na:

  • zielono lagów nie ma lub są bardzo mało zauważalne,
  • żółto lagi są, ale mogą nie być aż tak bardzo odczuwalne. Jednak jeśli utrudniają rozgrywkę trzeba sprawdzić co je powoduje,
  • czerwono lagi są bardzo odczuwalne. Trzeba koniecznie sprawdzić co je powoduje.

Szukanie przyczyny lagów

Przechodzimy teraz do właściwej części dokumentacji. Komendą /spark profiler możemy rozpocząć działanie pluginu. W trakcie trwania lagów odczekujemy do 5 minut i wpisujemy komendę /spark profiler --stop. Wygeneruje nam się link do strony sparka na której znajdziemy rezultaty.

Wygenerowany link otwiera nam stronę. Na dole strony klikamy Server thread 100.00%, która rozwija nam listę.

Rozwijamy kolejne listy (tam gdzie jest największy procent), aż dotrzemy do ostatniej listy która jednoznacznie wskaże nam plugin/modyfikacje która obciąża serwer. W moim przypadku pluginami które powodują lagi są WorldBorder oraz TerrainControl. Na potrzeby tego poradnika wgrałem biomy do TerrainControl i zacząłem generować mapę z tymi biomami za pomocą pluginu WorldBorder - nie róbcie tak w trakcie gdy inni gracze chcą grać na serwerze.

Lag spikes/szpilki

Jeśli zauważymy, że na naszym serwerze od czasu do czasu pojawia się lag który trwa maksymalnie kilka sekund, możemy go zdiagnozować za pomocą komend:

  • /spark profiler --only-ticks-over 50 - w przypadku gdy lag trwa maksymalnie sekundę/dwie,
  • /spark profiler --only-ticks-over 200 - w przypadku gdy lag trwa kilka sekund np. 5-10.

Po wpisaniu komend, zostawiamy profiler na klika minut i w między czasie obserwujemy pod komendą /tps czy nasze tpsy spadły czy utrzymują się w normie.

Przykłady Lag spikes

  • Zapis/odczyt mapy z dysku. Przykład: wchodząc do Netheru za pomocą portalu serwer musi załadować mapę. Wówczas inni gracze mogą odczuć chwilowego laga. Dlatego zalecane jest generowanie wszystkich map znajdujących się na serwerze,
  • źle napisane pluginy/modyfikacje, które robią skomplikowane obliczenia w 1 ticku. Pluginy/modyfikacje wysyłające dużą ilość zapytań do bazy danych na wątku świata również mogą powodować lagi.
szukanie_przyczyn_lagow_sparkiem.txt · ostatnio zmienione: 2022/11/11 15:30 przez tech