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 .



Tworzenie serwera Teamspeak 3 na Ubuntu 14 64-bit

Tworzenie serwera Teamspeak 3 na Ubuntu 14 64-bit

Omówienie Niezależnie od tego, czy pracujesz nad dużym projektem współpracy z zespołem programistów, czy zabijasz szefa w najnowszej grze RPG, zaczynasz

Jak skonfigurować serwer Left 4 Dead 2 na Ubuntu

Jak skonfigurować serwer Left 4 Dead 2 na Ubuntu

W tym samouczku dowiesz się, jak skonfigurować serwer Left 4 Dead 2 na Ubuntu. Ten przewodnik został przetestowany na serwerze Ubuntu 15.10. Warunki wstępne Zaktualizuj th

Jak zainstalować Starbound Server na CentOS 7

Jak zainstalować Starbound Server na CentOS 7

Używasz innego systemu? W tym samouczku wyjaśnię, jak skonfigurować serwer Starbound na CentOS 7. Wymagania wstępne Musisz mieć tę grę na sobie

Skonfiguruj SA-MP San Andreas Multiplayer Server na CentOS 6

Skonfiguruj SA-MP San Andreas Multiplayer Server na CentOS 6

Witamy w innym samouczku Vultr. Tutaj dowiesz się, jak zainstalować i uruchomić serwer SAMP. Ten przewodnik został napisany dla CentOS 6. Wymagania wstępne Będziesz potrzebował

Zainstaluj Ragnarok Online Server na Ubuntu 14.04 x64

Zainstaluj Ragnarok Online Server na Ubuntu 14.04 x64

W tym artykule zamierzamy zainstalować Ragnarok Online Server na Ubuntu 14.04 x64. Możesz być zalogowany jako użytkownik root lub użytkownik z uprawnieniami administratora. To

Jak zainstalować PufferPanel (bezpłatny panel sterowania Minecraft) na CentOS 7

Jak zainstalować PufferPanel (bezpłatny panel sterowania Minecraft) na CentOS 7

Wprowadzenie W tym samouczku zainstaluj PufferPanel na naszym Vultr VPS. PufferPanel to otwarty, darmowy panel kontrolny do zarządzania tobą

Instalowanie Sponge i Minecraft Forge na Debianie 9

Instalowanie Sponge i Minecraft Forge na Debianie 9

Używasz innego systemu? Sponge to projekt typu open source, który rozszerza możliwości serwerów Minecraft poprzez wtyczki. W połączeniu z modding AP

Jak zainstalować Unturned 2.2.5 na CentOS 6

Jak zainstalować Unturned 2.2.5 na CentOS 6

W tym przewodniku dowiesz się, jak skonfigurować serwer Unturned 2.2.5 na Vultr VPS z systemem CentOS 6. Uwaga: To jest edytowana wersja Unturned, która nie

Jak zainstalować serwer FiveM na Ubuntu 19.04

Jak zainstalować serwer FiveM na Ubuntu 19.04

Wymagania wstępne System Linux z systemem Ubuntu 19.04 z co najmniej 1 rdzeniem procesora i 2 GB pamięci Użytkownik inny niż root w systemie Zanim zaczniemy Zapewnić cię

Konfiguracja Counter Strike: Źródło na Debianie

Konfiguracja Counter Strike: Źródło na Debianie

W tym przewodniku będziemy konfigurować Counter Strike: źródłowy serwer gier na Debianie 7. Te polecenia zostały przetestowane na Debianie 7, ale powinny również działać

Jak skonfigurować serwer Tekkit Classic na Ubuntu 16.10

Jak skonfigurować serwer Tekkit Classic na Ubuntu 16.10

Używasz innego systemu? Co to jest Tekkit Classic? Tekkit Classic to modpack do gry, którą wszyscy znają i kochają; Minecraft. Zawiera niektóre wersje

Skonfiguruj Multi Theft Auto Server na Debianie

Skonfiguruj Multi Theft Auto Server na Debianie

Ten samouczek wyjaśnia, jak zainstalować serwer Multi Theft Auto na Debianie. Ostatnia aktualizacja dla Debiana 7 i MTA 1.5.4. Każdy VPS z Vultr jest grea

Jak zainstalować SA-MP San Andreas Multiplayer na CentOS 7

Jak zainstalować SA-MP San Andreas Multiplayer na CentOS 7

W tym samouczku dowiesz się, jak skonfigurować serwer SA-MP (San Andreas Multiplayer) na CentOS 7. Wymagania wstępne Pozwala upewnić się, że system jest w pełni zaktualizowany

Jak zainstalować serwer Teamspeak 3 na Ubuntu 16.04 64-bit

Jak zainstalować serwer Teamspeak 3 na Ubuntu 16.04 64-bit

Używasz innego systemu? Przegląd Masz dość korzystania z Discord / Skype? Zmęczony brakiem pełnej kontroli nad serwerem? A może to z powodu braku o

Jak zainstalować ARK Survival Evolved (ArkSE) na CentOS 7

Jak zainstalować ARK Survival Evolved (ArkSE) na CentOS 7

W tym samouczku dowiedz się, jak skonfigurować serwer ARK Survival na CentOS 7. Wymagania wstępne ARK wymaga dużej ilości pamięci. Polecam użycie V

Jak zainstalować Counter-Strike: Global Offensive Server w systemie Windows

Jak zainstalować Counter-Strike: Global Offensive Server w systemie Windows

Wprowadzenie W tym przewodniku dowiesz się, jak zainstalować serwer Counter-Strike: Global Offensive w systemie Windows. Wymagania wstępne Zanim zaczniemy, będziesz

Jak zainstalować Cuberite na serwerze CentOS 6 lub 7

Jak zainstalować Cuberite na serwerze CentOS 6 lub 7

Wprowadzenie Co to jest Cuberite? Cuberite to skalowalna implementacja serwera Minecraft typu open source napisana w C ++. Ma łatwą w użyciu wtyczkę

Skonfiguruj serwer Counter-Strike: Global Offensive (CSGO) na Arch Linux

Skonfiguruj serwer Counter-Strike: Global Offensive (CSGO) na Arch Linux

W tym samouczku wyjaśniono, jak skonfigurować serwer Counter-Strike: Global Offensive na Arch Linux. W tym samouczku założono, że zalogowano się przy standardowym użyciu

Jak zainstalować Left 4 Dead Server na CentOS 7

Jak zainstalować Left 4 Dead Server na CentOS 7

W tym przewodniku wyjaśnię, jak zainstalować i skonfigurować serwer L4D na CentOS 7. Instalowanie Left 4 Dead Zanim zaczniemy, musimy upewnić się, że

Instalowanie serwera Reflex Server w systemie Windows

Instalowanie serwera Reflex Server w systemie Windows

Wprowadzenie Reflex to nadchodząca konkurencyjna Arena FPS firmy Turbo Pixel Studios. Ten samouczek pokaże, jak skonfigurować własny serwer Reflex

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…

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ą

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.

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.