Poradnik szczegółowy z opisem przyczyn wystepowania lagow na serwerze
Witam wszystkich w moim pierwszym poradniku na CraftPortal.pl. Będzie on dotyczył podstawowych przyczyn powstawania lagów na serwerach Minecraft. W szybki i szczegółowy sposób przedstawię Wam dlaczego lagi się pojawiają i jak z nimi skutecznie walczyć. Zapraszam do lektury
Częstym problemem, który rani grę jest sprzęt na którym uruchomiony jest serwer. Jeżeli Twój serwer umiejscowiony jest na Twoim komputerze to sam wiesz na co możesz sobie pozwolić, a co zbytnio obciąży Twój komputer. Natomiast jeżeli posiadasz serwer dedykowany nigdy naprawdę nie wiesz na czym stoisz. Obiecywane parametry mogą być dużo niższe lub dzielone z innym serwerem, a Ty będziesz głowił się dlaczego nie możesz spokojnie grac ze swoimi przyjaciółmi.
Silnik Craftbukkit i Mineforge z dodatkiem Bukkit forge: :
Najczęściej spotykane problemy i ich rozwiązanie:
1. Źle napisane pluginy bądź modyfikacje mogą być bardzo problematyczne dla silnika gry. Usuń źle działający plugin, bądź zaktualizuj go do najnowszej wersji. Jeżeli nie jesteś w sanie określić który plugin nie nadaje się do używania użyj komendy /plugins (w Essentials). Wyświetli ona na zielono działające pluginy i na czerwono niedziałające pluginy. Jeżeli ten sposób nie zadziała usuwaj kolejno po jednym pluginie i sprawdzaj, czy lagi nadal występują.
2.Nadmierna ilość spawnujących się mobów (zwierzęta i moby). W Minecraftowym świecie pojawia się dużo mobów, które w znaczy sposób obciążają serwer. Przy pomocy kilku pluginów możesz skutecznie zablokować lub ograniczyć pojawianie się potworów:
- WorldEdit – użyj komendy /butcher by zabić moby w regionie, w którym się znajdujesz.
- Essentials – przejdź do ustawien pluginu i zmień wartości pojawiania się wybranych mobów. (opis konfiguracji znajduje się na dole posta)
- WorldEdit – przy pomocy komend /remove drops -1, i remove arrows -1, usuniesz leżące przedmioty i strzały.
- ClearLagg - (opis konfiguracji znajduje się na dole posta)
Jesl
- WorldEdit – użyj tego pluginu by usunąć wodę i lawę w danym regionie (/removenear water 90 i /removenear movingwater 90). Pamiętaj, że może to być bardzo ciężkie do obliczenia dla Twojego serwera!
6.Nadmierne urządzenia używające redstone. Redstone jest blokiem, który wymaga od serwera niemalże ciągłego odświeżania. Każdy zegar, bramka czy inne urządzenie wykorzystujące redstone jest bardzo obciążającym blokiem. Wyłączenie ich (usunięcie źródeł zasilania) spowoduje, że serwer nie będzie nieustannie musiał odświeżać bloków dzięki czemu będzie bardziej wydajny. Również bloki wykorzystujące redstone takie jak tłoki, lejki, piece, podajniki i wiele innych są kosztowne dla serwera. Radzę ograniczyć ich ilość, bądź całkowicie je zablokować np. W pluginie Essentials. (opis konfiguracji znajduje się na dole posta)
7.Nadmierne spadanie piasku i żwiru. Ruch sieciowy jaki jest generowany przez duże ilości spadających przedmiotów w celu aktualizacji mapy u klientów gry jest taki duży, że może powodować lagi. Usuń nadmierne ilości piasku i żwiru aby odciążyć serwer.
8.Generowania mapy. Podczas generowania mapy serwer jest obciążany aby te mapę stworzyć a nastepnię wyslać do klienta. Staraj się mniej podróżować lub całkowicie ogranicz mapę przy pomocy takich pluginów jak WorldBorder. Pamiętaj, że duże mapy również dodatkowo obciążają serwer. Użyj w/w pluginu do ograniczenia mapy. Jeżeli posiadasz kilka map usuń je i stwórz jedną większą, dzięki czemu serwer będzie wydajniejszy niż na kilku mapach jednocześnie. Ograniczy ilość wysyłanych chunków do gracza w celu odciążenia łącza. Odwiedź plik server_properties.yml w linijce render_distance: określ liczbę od 3 do 15. Jeżeli Twoja mapa nie potrzrebuje maksymalnej wysokości obniż ja w pliku server_properties.yml w linijce max-build-height
9.Rozpalony ogień. Rozpalony ogień wysyła dużo danych do sieci, zużywa dużo CPU i laguje klienta gry. Ugaś ogień aby pozbyć się lagów. Możesz użyć od tego pluginu WorldEdit i komendy /ex, bądź narzędzi takich jak mce.py lub MCEdit.
Przydatne pluginy Craftbukkit oraz Mineforge z dodatkiem Bukkit Forge:
LagMeter - - jest małym pluginem odpowiadającym za podawanie TPS serwera i stanu pamięci RAM. Możesz go za darmo ściągnąć z oficjalnej strony bukkita. Standardowa ilość TPS to 20 jeżeli liczba zejdzie poniżej 10 to coś złego dzieje sie z Twoim serwerem. Jeżeli ilość ramu jest niska radzę wykonać serstart serwera lub dodać mu większa pamieć.
ClearLagg - - plugin do kontrolowania lagujących serwer chunków.
pTweaks - - narzędzie do automatycznego kontrolowania lagów
[EDIT-1] Dodałem trzy błędy, które często pojawiają się w konsolach, oraz dodałem screenshot'y i wyjaśnienie konfiguracji.
[EDIT-2] Dodałem instruktaż jak usunąć wybuchające tnt z mapy.
Silnik standard:
1.Nadmierna ilość spawnujących się mobów (zwierzęta i moby). W Minecraftowym świecie pojawia się dużo mobów, które w znaczy sposób obciążają serwer. Przy pomocy kilku pluginów możesz skutecznie zablokować lub ograniczyć pojawianie się potworów:
2.Nadmierna ilość wyrzuconych przedmiotów i strzał. Klient gry często nie radzi sobie dobrze z wieloma przedmiotami leżącymi na ziemi. W wersji 1.3 wprowadzono grupowanie się przedmiotów lecz nawet to może czasem nie pomóc przy olbrzymich ilościach przedmiotów. Jeżeli jesteś w pobliżu obszaru, w którym masz lagi wciśnij F3 i sprawdź punkt E, w którym dowiesz się ile przedmiotów leży na ziemi. Jeżeli jest ich ponad 1000 (tak przynajmniej mówi , więc trzymajmy się tej liczby mimo iż jest ona dla mnie znacznie zawyżona).
3.Nadmierna ilość płynącej wody i lawy. Obliczenia płynącej lawy i wody są kosztowne nie tylko dla serwera ale i dla klienta gry. Aby sprawdzić czy region w którym się znajdujesz jest przeciążony wciśnij SHIFT+F3. Jeżeli masz dużo czerwonych lini to najprawdopodobniej tak. Czasem serwer może wyrzucić gracza z powodu braku połączenia (w konsoli błąd "disconnect.overflow").
4.Nadmierne ilości kaktusów. Wielkie plantacje kaktusów mogą powodować wiele lagów. W razie potrzeby usuń je.
5.Nadmierne urządzenia używające redstone. Redstone jest blokiem, który wymaga od serwera niemalże ciągłego odświeżania. Każdy zegar, bramka czy inne urządzenie wykorzystujące redstone jest bardzo obciążającym blokiem. Wyłączenie ich (usunięcie źródeł zasilania) spowoduje, że serwer nie będzie nieustannie musiał odświeżać bloków dzięki czemu będzie bardziej wydajny. Również bloki wykorzystujące redstone takie jak tłoki, lejki, piece, podajniki i wiele innych są kosztowne dla serwera. Radzę ograniczyć ich ilość, bądź całkowicie je zablokować np. W pluginie Essentials. (opis konfiguracji znajduje się na dole posta)
6.Nadmierne spadanie piasku i żwiru. Ruch sieciowy jaki jest generowany przez duże ilości spadających przedmiotów w celu aktualizacji mapy u klientów gry jest taki duży, że może powodować lagi. Usuń nadmierne ilości piasku i żwiru aby odciążyć serwer.
7.Generowania mapy. Podczas generowania mapy serwer jest obciążany aby te mapę stworzyć a nastepnię wyslać do klienta. Staraj się mniej podróżować .Zbadaj swoja mape w programie MCedit
8.Rozpalony ogień. Rozpalony ogień wysyła dużo danych do sieci, zużywa dużo CPU i laguje klienta gry. Ugaś ogień aby pozbyć się lagów. Możesz uzyc narzędzi takich jak program MCEdit.
Częste błędy (Wszystkie silniki) :
Błąd "Can't keep up". Wiadmość ta pojawiająca się w konsoli oznacza iż zegar serwera ma opóźnienie (laga). Gdy widzisz tą informację rzadko to nie musisz się nią przejmować. Lecz jeżeli pojawia się ona często to masz poważny problem z serwerem. W dodatku błąd ten można rozpoznać poprzez opóźnione stawianie bloków i spowolniony czas (między nocą a dniem). Warto sprawdzić w/w problemy, gdyż to one mogą wywoływać ten błąd. Jeżeli powyższe metody nie zadziałają jest to problem sprzętu. Za mało pamięci RAM bądź zbyt wolny CPU. Warto pamiętać, że Minecraft nie jest wielowątkowy, więc wielordzeniowe procesory nie będą w pełni wykorzystywać swojej mocy.
Błąd "GzipException". Miencraftowy Świat jest zbudowany z chunków czyli terenów 16x16x128. Wiadomość ta pokazuje się podczas uruchamiania serwera gdy Twój świat jest uszkodzony. Aby naprawić ten problem musisz przywrócić mapę do ostatniego poprawnego stanu, bądź użyć edytora map takiego jak mce.py lub MCEdit.
Błąd "Java.net.SocketException: Connection reset". Błąd ten nie jest niczym ważnym. Pojawia się on gdy gracz opuści serwer np. wyłączając Minecrafta. Serwer nie otrzymuje danych od klienta dlatego pojawia się ten błąd.
Jak naprawić mapę zepsutą przez wybuchające tnt?
Często zdarza się, ze gracze na serwerze niszczą mapy poprzez postawienie ogromnej ilości TNT i odpalenie go. Serwer wówczas staje się przeciążony, zegar serwera jest opóźniony, a mapa zazwyczaj uszkodzona i usuwana. Jednak jest możliwość naprawy jej poprzez narzędzie McEdit. Oto szybkie wyjaśnienie jak tego dokonać. Jeżeli poniższy sposób nie zdołał naprawić mapy, lub rezultat nie jest satysfakcjonujący polecam przywrócić mapę do wcześniejszego, poprawnego stanu.
Na początek musimy pobrać nasze narzędzie McEdit na nasz komputer i przygotować je do pracy. Odwiedzamy stronę a następnie pobieramy aplikacje zgodną z naszym systemem. Po pobraniu otwieramy pobrane archiwum poprzez dowolny archiwizator np. WinRar i je wypakowujemy.
Po wypakowaniu otwieramy plik mcedit.exe. Powinny pojawić się dodatkowe pliki, cmd, oraz sam pogram.
Teraz musimy pobrać mapę z naszego serwera i otworzyć ją programem McEdit (Open a level -> NAZWA_SWIATA/level.dat). Sterowanie jest banalne – w,a,s,d poruszanie postacią; PPM+myszka obracanie kamery; LPM zaznaczanie. Po załadowaniu świata wyszukujemy terenu gdzie tnt wybuchło.
Widoczne na ss czerwone kwadraty to podpalone tnt, którego w normalnym Mc nie jesteśmy w stanie zniszczyć. Zaznaczany teren z odpalonym i nie odpalonym tnt.
Wybierz opcję "Delete Entities", aby usunąć wszystkie wybuchające tnt z zaznaczonego obszaru. UWAGA! Spowoduje to również usunięcie niektórych elementów gry takich jak obrazy!
Wybierz funkcję "Fill and Replace", a następnie wybierz spośród listy tnt. Potwierdź przyciskiem "ok" i kliknij "Replace". Jeżeli widzisz poniższe ustawienie w menu to możesz ponownie kliknąć "Replace".
Po wykonaniu powyższych punktów powinieneś prawidłowo pozbyć się niechcianego tnt.
TNT prawidłowo zostało usunięte. Nie zapomnij o zapisaniu pracy CTRL+S!