EndyStudio
Pluginy

Analizator profilu spark

Wklej link z /spark profiler i dostań TPS i czasy ticków swojego serwera, listę tego, co zmienić w Javie, plikach konfiguracyjnych serwera i pluginach, oraz czas, jaki każdy plugin zabiera z każdego ticka.

  • Za darmo
  • Bez konta
  • Działa w przeglądarce

Profil spark

Jak zdobyć link

  1. Wpisz /spark profiler start na serwerze. spark jest wbudowany w Paper i Purpur od 1.21; na innych serwerach najpierw zainstaluj plugin lub moda spark.
  2. Niech nagrywa co najmniej 5 minut, gdy na serwerze są gracze.
  3. Wpisz /spark profiler stop i wklej tutaj link, który dostaniesz.

Profil jest pobierany prosto z spark.lucko.me do twojej przeglądarki. Nigdy nie przechodzi przez nasz serwer.

Co sprawdza analizator

spark wiele razy na sekundę zapisuje, co robi serwer, i wrzuca to razem z liczbami i plikami konfiguracyjnymi serwera. Analizator czyta to wszystko i przechodzi przez cztery rzeczy:

  • Jak radzi sobie serwer. TPS i MSPT z ostatnich minut, CPU, pamięć, gracze i załadowane byty oraz słupek na każdą minutę, żebyś widział, kiedy zrobiło się wolno.
  • Java i maszyna. Rozmiar heapu, garbage collector i to, czy używa flag Aikara, pełne odśmiecania pamięci, pamięć wolna po odśmiecaniu, wątki CPU oraz to, czy maszynie brakuje pamięci albo jest zajęta czymś innym.
  • Ustawienia. view-distance i simulation-distance w server.properties, limity spawnu w bukkit.yml, zasięgi aktywacji bytów w spigot.yml oraz opcje Papera i Purpura dotyczące wybuchów, redstone, kolizji, spawnerów, lejów, stojaków na zbroję i osadników. Każde zalecenie mówi, który plik i klucz zmienić.
  • Pluginy. Czas, jaki każdy plugin zajmuje na głównym wątku, pluginy, które często sprawiają problemy (ClearLag, PlugMan, stackery mobów), oraz chunk z największą liczbą bytów, z komendą /tp, żeby się tam przenieść.

Zalecenia są posortowane od tego, co poprawić najpierw, do opcjonalnych wskazówek. Dopóki serwer nadąża, zmiany ustawień pokazują się jako wskazówki: zwalniają czas, którego jeszcze nie potrzebujesz.

Jak zrobić profil spark

  1. Wpisz /spark profiler start w konsoli albo w grze. Na Paper i Purpur 1.21 i nowszych spark jest już wbudowany.
  2. Niech nagrywa co najmniej 5 minut w zwykłych godzinach, gdy są gracze online. Profil pustego serwera pokazuje tylko bezczynny serwer.
  3. Wpisz /spark profiler stop. spark wrzuca profil i wypisuje link https://spark.lucko.me/….
  4. Wklej link powyżej. Analiza zacznie się sama.

Jeśli lagi przychodzą skokami, a nie cały czas, nagraj tylko wolne ticki: /spark profiler start --only-ticks-over 100 zachowuje ticki, które trwały ponad 100 ms, i pomija resztę.

TPS i MSPT

Serwer obsługuje świat w tickach, 20 na sekundę, więc każdy tick ma 50 ms. MSPT (milisekundy na tick) to czas, jaki tick naprawdę zajął. Dopóki zostaje poniżej 50, serwer trzyma 20 TPS i ma zapas czasu. Gdy ticki trwają dłużej, TPS spada, a moby, redstone i uprawy zwalniają dla wszystkich.

MSPT Co to znaczy
Poniżej 30 ms Duży zapas na ruchliwe momenty
30 – 45 ms W porządku, ale z małym marginesem
45 – 50 ms Na granicy: widać każdy skok
Powyżej 50 ms Serwer nie nadąża i TPS spada

Analizator patrzy na 95. percentyl, czyli czas, poniżej którego zmieściło się 95 % ticków. Średnia ukrywa wolne ticki; 95. percentyl nie.

Jak czytać czas na plugin

Lista pluginów sumuje czas spędzony w kodzie każdego pluginu na głównym wątku i dzieli go przez liczbę nagranych ticków, więc wynik jest w ms na tick, w odniesieniu do 50 ms, które ma każdy tick. Plugin, który zajmuje 5 ms na tick, sam zużywa jedną dziesiątą budżetu. Czas, który plugin spędza na wywoływaniu innego pluginu, liczy się temu wywoływanemu, tak samo jak liczy go przeglądarka sparka.

To, co zostaje po pluginach, to sama gra: byty, chunki, redstone i gracze. Zalecenia dotyczące ustawień celują właśnie w tę część. Żeby zobaczyć, które dokładnie zadanie pluginu zajmuje czas, otwórz profil w przeglądarce sparka i przełącz na widok Sources.

Zmiany, które zwykle pomagają najbardziej

  • Zmniejsz simulation-distance do 5 lub 6, a view-distance do około 8. Simulation distance decyduje, jaka część świata jest tickowana wokół każdego gracza, więc obciąża każdy tick.
  • Zmniejsz zasięgi aktywacji bytów w spigot.yml, żeby moby daleko od graczy były tickowane rzadziej.
  • Użyj opcji Papera: optimize-explosions, implementacji redstone ALTERNATE_CURRENT, max-entity-collisions na 2 i tick rate spawnerów na 2.
  • Uruchamiaj Javę z flagami Aikara i heapem dopasowanym do serwera. Kalkulator RAM przygotuje ci jedno i drugie.
  • Wygeneruj świat wcześniej pluginem takim jak Chunky, żeby nowe chunki nie generowały się w trakcie gry.

Zmieniaj jedną rzecz naraz i po każdej zmianie nagraj nowy profil. Dzięki temu wiesz, co pomogło i co cofnąć, jeśli jakaś farma przestanie działać.

Twój profil a prywatność

Analizator działa w twojej przeglądarce: profil jest pobierany prosto z spark.lucko.me i nigdy nie przechodzi przez EndyStudio. Pamiętaj, że profil spark zawiera pliki konfiguracyjne twojego serwera (spark ukrywa hasła, adresy IP i podobne klucze) i że każdy, kto ma link, może go otworzyć.

Najczęściej zadawane pytania

Jak zrobić profil spark?

Wpisz /spark profiler start na serwerze, pozwól mu nagrywać co najmniej 5 minut, gdy są gracze online, a potem wpisz /spark profiler stop. spark wrzuca wynik i daje ci link spark.lucko.me. Wklej ten link do analizatora.

Czy spark jest wbudowany w Paper?

Tak. Paper i forki takie jak Purpur mają spark od Minecrafta 1.21, więc komenda /spark działa bez instalowania czegokolwiek. Na Spigot, Fabric, Forge, NeoForge, Velocity albo BungeeCord najpierw zainstaluj plugin lub moda spark.

Jakie MSPT jest dobre?

Każdy tick ma 50 ms. Poniżej 30 ms to duży zapas, 30 do 45 ms jest w porządku, ale na styk, a gdy ticki regularnie przekraczają 50 ms, serwer nie utrzyma już 20 TPS i gracze czują lagi.

Czy mój profil trafia do EndyStudio?

Nie. Twoja przeglądarka pobiera profil prosto z spark.lucko.me i analizuje go na twoim komputerze. Nic nie przechodzi przez nasz serwer i nic nie jest zapisywane. Pamiętaj, że każdy, kto ma link do sparka, może go otworzyć, łącznie z plikami konfiguracyjnymi twojego serwera.

Dlaczego analizator nie pokazuje podziału na pluginy?

Podział pochodzi z drzewa wywołań sparka, które mają tylko profile z /spark profiler. Raport stanu (/spark health) ani podsumowanie heapu (/spark heapsummary) go nie zawierają.

Analizator mówi, że wszystko jest w porządku, a gracze dalej mają lagi. Dlaczego?

Lagi po stronie gracza nie zawsze są winą serwera. Jeśli TPS trzyma się na 20, a ticki są krótkie, sprawdź połączenie (ping, utrata pakietów, proxy) albo FPS samego klienta. Jeśli lagi przychodzą krótkimi seriami, nagraj tylko wolne ticki przez /spark profiler start --only-ticks-over 100.