Narzędzia użytkownika

Narzędzia witryny


szukanie_przyczyn_lagow_sparkiem

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
szukanie_przyczyn_lagow_sparkiem [2022/11/11 13:20]
tech utworzono
szukanie_przyczyn_lagow_sparkiem [2022/11/11 15:30] (aktualna)
tech [Przykłady Lag spikes]
Linia 1: Linia 1:
-test+====== 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ś [[optymalizacja_serwera_minecraft|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|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 [[https://​www.spigotmc.org/​resources/​spark.57242|oficjalnej strony spigotmc.org]] i wgrywamy go **tak samo jak każdy inny plugin**. Poradnik jak wgrać plugin: [[jak_wgrywac_pluginy|jak wgrywać pluginy]] 
 + 
 +====== Podstawowa komenda /tps ====== 
 +Aby sprawdzić czy Spark zainstalował się prawidłowo wpisujemy komendę ''/​tps''​ 
 +{{::​spark_tps.png?​nolink|}} 
 + 
 +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 <​nowiki>​--</​nowiki>​stop''​. Wygeneruje nam się **link** do strony sparka na której znajdziemy **rezultaty**. 
 + 
 +{{::​spark_results.png?​nolink|}} 
 + 
 +Wygenerowany link otwiera nam stronę. Na dole strony klikamy **Server thread 100.00%**, która rozwija nam listę. 
 +{{:​undefined:​spark_server_thread.png?​nolink|}} 
 + 
 +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. 
 +{{::​spark_server_thread2.png?​nolink|}} 
 +//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 <​nowiki>​--</​nowiki>​only-ticks-over 50''​ - w przypadku gdy lag trwa maksymalnie **sekundę/​dwie**,​ 
 +  * ''/​spark profiler <​nowiki>​--</​nowiki>​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.1668169226.txt.gz · ostatnio zmienione: 2022/11/11 13:20 przez tech