Diagnozowanie opóźnienia i niskiego TPS serwera Minecraft

Jak działa Minecraft (Co powoduje opóźnienie?)

Kluczem do zrozumienia, co powoduje lag, jest zrozumienie, jak działa Minecraft. Oprogramowanie serwera Minecraft działa w podobnej sprawie z jednym kluczowym problemem: nie ma limitów wielowątkowości lub limitów czasowych dla głównej pętli gry. Gdy serwer przechodzi w tryb tic, przechodzi przez każdą aktualizację TileEntity, aktualizację encji, blokową aktualizację, zdarzenia i inne procesy aż do zakończenia. Wszystko to dzieje się w jednym wątku, a następna pętla nie może się rozpocząć, dopóki bieżąca się nie zakończy. Świat się nie zaktualizuje, gracze nie będą się poruszać, a istoty zostaną zamrożone na miejscu. Idealnie każdy tik powinien zająć nie więcej niż 50 ms, aby utrzymać 20 tików na sekundę (TPS). Może to zająć nawet 55,55 ms dla 18 TPS przy minimalnych problemach. Jakikolwiek niższy niż ten i zaczniesz widzieć opóźnienie.

Typowe przyczyny opóźnień

Istnieje wiele rzeczy, które mogą powodować opóźnienia, ale niektóre z nich będą najbardziej prawdopodobnym winowajcą większości serwerów.

  • Wykorzystanie pliku : dowolna wtyczka, która stale czyta z plików odtwarzacza, szczególnie w przypadku takich zdarzeń, jak ruch, uszkodzenie lub interakcja. Kilka przykładów to niektóre flagi PVP lub wtyczki Glow, które będą stale odczytywać z plików odtwarzacza.
  • Pliki płaskie jako baza danych : jeśli masz wtyczki korzystające z dużych plików, aby śledzić wiele danych iterujących przez ten plik lub w pamięci, w zależności od tego, jak są przechowywane, zajmie to dużo czasu. Wiele wtyczek robi to i nie podejmuje środków ostrożności przeciwko temu, w jaki sposób, gdy bazy danych ulegną rozdęciu, czas przetwarzania wpłynie na tik serwerów. Zobaczysz to często podczas ładowania dużych konfiguracji MagicSpells lub korzystania z systemów uprawnień, które używają YAML zamiast odpowiedniej bazy danych, takiej jak PEX i GroupManager.
  • Zbyt wiele operacji : gdy wtyczka spawnuje zbyt wiele jednostek lub próbuje wykonywać złożone zadania przy takich zdarzeniach, jak ruch, zaczniesz widzieć opóźnienie. Nawet jeśli każde uruchomienie zajmuje mniej niż 1 ms, przetwarzanie zdarzenia 20 000 razy na sekundę staje się wykładnicze. Wtyczki, które mogą to powodować, to wtyczki do edycji świata, takie jak VoxelSniper i WorldEdit; lub wtyczki ochronne, takie jak Anti Cheats i World Protectors.
  • Załadowano zbyt wiele porcji : Jedna porcja jest 16*16*256. Może to nie brzmieć dużo, ale po pomnożeniu oznacza to 65 536 bloków na porcję. Każdy gracz może mieć wokół siebie ponad 200 kawałków, w zależności od konfiguracji. To w górę od 13 107 200 bloków. To zajmuje dużo pamięci. Ponadto, jeśli nawet 1% z nich to TileEntities, to załadowano 131 072 TileEntities, które muszą aktualizować każdy tic. Mody są znane z tego, że mają wolne czasy przetwarzania w TileEntities.
  • Cascading WorldGen : To jest, gdy wtyczka lub mod generuje struktury poza podaną porcją . Powoduje to załadowanie kolejnej porcji, wygenerowanie jej, a następnie wyzwolenie od nowa, jeśli również zacznie przepełniać struktury do następnej porcji. To zły projekt w imieniu twórców i wszelkie wtyczki i mody, które to robią, powinny zostać natychmiast usunięte.
  • Elementy kafelkowe : patrz sekcja LagGoggles poniżej.

Znalezienie przyczyny opóźnienia jest obecnie w zasadzie prostą procedurą, ponieważ większość oprogramowania serwerowego Minecraft jest zbudowana z dołączonymi narzędziami do profilowania.

Raporty czasowe dla Spigot / PaperSpigot

Aby uzyskać szczegółowy raport o taktowaniu, możesz użyć następującego polecenia.

/timings on

Będziesz chciał poczekać kilka minut i poczekać, aż upłynie czas. Po chwili wygeneruj raport.

/timings paste

To da ci link do strony internetowej z ładnym podziałem raportu i łatwymi opcjami przeszukiwania wszystkich danych, które otrzymujesz. Możesz dowiedzieć się więcej o tym, jak je czytać na wiki wiki Spigota .

Później będziesz chciał wyłączyć taktowanie, ponieważ nie chcesz, aby niepotrzebne dane blokowały następny odczyt, a taktowanie dodaje dodatkowego czasu do tiku.

/timings off

Raporty czasowe dla gąbki

Aby uzyskać szczegółowy raport o taktowaniu, możesz użyć następującego polecenia.

/sponge timings on

Będziesz chciał poczekać kilka minut i poczekać, aż upłynie czas. Po chwili wygeneruj raport.

/sponge timings report

To da ci link do strony internetowej z ładnym podziałem raportu i łatwymi opcjami przeszukiwania wszystkich danych, które otrzymujesz. Ponieważ system pomiaru czasu Sponge jest oparty na systemie pomiaru czasu Spigota, możesz dowiedzieć się więcej o tym, jak je czytać na wiki pomiaru czasu Spigota .

Później będziesz chciał wyłączyć taktowanie, ponieważ nie chcesz, aby niepotrzebne dane blokowały następny odczyt, a taktowanie dodaje dodatkowego czasu do tiku.

/sponge timings off

Możesz także zresetować czasy.

/sponge timings reset

Kroki w celu zmniejszenia opóźnienia

  • Użyj odpowiednich argumentów dla pliku skryptu, aby uruchomić Minecraft. Dowiedz się więcej o odpowiednich argumentach Java tutaj
  • Użyj LuckPerms lub menedżera uprawnień, który używa właściwej bazy danych zamiast płaskiego pliku
  • Unikaj całkowicie ładowarek
  • Usuń wszystko, co powoduje kaskadowe generowanie świata
  • Ogranicz wtyczki Anti Cheat, aby nie były nadgorliwe
  • Ogranicz odległość widzenia graczy server.properties
  • Usuń wrogie moby po upływie określonego czasu
  • Zrestartuj serwer codziennie, aby usunąć wycieki z Javy
  • NIGDY nie należy ponownie ładować serwera, powoduje to wycieki i inne problemy
  • Używaj wersji wtyczek FastAsync, takich jak WorldEdit i VoxelSniper
  • Ogranicz wielkość swojego świata, aby nowe fragmenty nie były ciągle tworzone
  • Ogranicz liczbę używanych wtyczek. Nie wszystkie wtyczki są dobrze zbudowane i im więcej masz problemów, tym więcej problemów napotkasz

LagGoggles

Duża część opóźnień na zmodyfikowanych serwerach pochodzi od jednostek kafelkowych. Są to encje tworzone dla bloków, które są wykorzystywane do przetwarzania funkcjonalności i zdarzeń bloku. Jeśli trwa to zbyt długo lub jest ich zbyt wiele, może to wydłużyć czas na kliknięcie, zmniejszając całkowitą liczbę TPS serwera. Sposobem na wizualizację tych problemów jest użycie modu o nazwie LagGoggles. Możesz pobrać ten mod z CurseForce .

Zostaw komentarz

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.