Spadki TPS serwer minecraft

Pytania i problemy
minecraft, zarządzanie
zeetg
zeetg

Od pewnego czasu na moim serwerze minecraft TPS przy większej ilości graczy spadają do nawet 12 i się ciągle wahają. Raz jest 12, następnym razem 14, po 2 minutach 16, a później to zatacza koło. Cały czas przy takiej ilości graczy jak obecnie (około 50) było wszystko w porządku, ale kilka dni temu to się zmieniło. Serwer jest na wersje 1.12.2, więc raczej nie powinno być takich problemów na jakie bardzo często się napotyka z wyższymi wersjami, tym bardziej że wcześniej serwer działał zarzutów przy takiej ilości osób. Czy to możliwe, że to przez utworzenie bazy danych i obciąża ona VPS? Dzieje się tak właśnie od momentu utworzenia tej bazy danych. Z góry dzięki za odpowiedź.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Wszystko zależy, od tego, do czego jest ta baza wykorzystywana.

zeetg
zeetg

Połączyłem tylko z nią wtyczkę LiteBans między dwoma serwerami.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

To raczej mało prawdopodobne, że jest to przyczyna. Dostarcz wyniki timingów, a wtedy będzie można powiedzieć coś więcej.

Komendy: /timings on odczekaj z 15 min /timings paste

zeetg
zeetg

Ktoś jest w stanie mi pomoc? To raczej duży problem

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Na pierwszy rzut oka prawdopodobnie farmy kurczaków oraz redstone się dokłada do ogólnego obciążenia serwera. Mógłbyś pokazać zrzut ekranu z górnej belki programu htop z terminala podczas następnego razu, gdy będzie taka sytuacja z bardzo niskim TPS?

apt install htop
htop

Coś takiego nas interesuje: image|690x138

Scovian
Scovian

Podłączam się, od kilku dni też mam spore problemy z wydajnością, tps losowo spada do 15 a użycie procesora skacze do 100%

zeetg
zeetg

image|573x115

Obecnie jest 39 graczy online i 15 tps.

Timo
Timo Moderator forum.lvlup.pro

Zostaw sobie troszkę więcej pamięci na system i dla bezpieczeństwa ustaw SWAP. Jeśli nie wiesz jak to zrobić, tutaj masz poradnik: https://lvlup.rok.ovh/t/tworzenie-pliku-swap-na-serwerze-vps/8958?u=timo

anon26799942
anon26799942

Timo:

Zostaw sobie troszkę więcej pamięci na system @Timo może mieć rację. Bardzo prawdopodobne, że ustawiłeś za dużo RAM-u pod sam serwer, a baza danych nie wyrabia. I podczas łączenia się graczy do serwera dochodzi do lagów, które zmniejszają ilość ticków, więc jest ich mniej w sekundzie, zatem spada wartość TPS.

Najlepiej, gdybyś podał:

  • nazwę i wersję bazy danych
  • nazwę i wersję silników, na których występuje problem (podejrzewam, że oby dwa)

Co możesz spróbować zrobić:

  • ustawić bazę danych na Redis-a (ma o wieeele lepszą wydajność od MySQL-ki czy MariaDB-ski)
  • ustawić więcej RAM-u dla bazy (do MySQL polecają 6 GB, moim zdaniem stanowczo wystarczy dwu- lub trzykrotność pamięci przypisanej obecnie)

Pozdrawiam 😉

bopke
bopke Moderator forum.lvlup.pro

anon26799942:

ustawić bazę danych na Redis-a (ma o wieeele lepszą wydajność od MySQL-ki czy MariaDB-ski)

Jedną z wielu przyczyn dla których redis jest szybszy od mysql jest fakt, że nie gwarantuje on zapisu. Redis nie służy do przechowywania długoterminowo danych, redis jest bazą która nadaje się najwyżej na cache.

anon26799942
anon26799942

A tego to nie wiedziałem... Dzięki :)

zeetg
zeetg

Mam VPS 16 GB FR i znajduje się na nim serwer minecraft 10 GB, drugi serwer minecraft 2 GB (oba serwery minecraft PaperSpigot 1.12.2), waterfall 1 GB i baza danych MariaDB (chyba wersja 10.1)

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Masz dość wysoki load average (7/4), co oznacza, że VPS jest dość mocno dociskany. Może warto rozważyć zmianę pakietu na wyższy?

Patrząc na to, że więcej vCPU jest dopiero na 32GB RAM FR, zalecałbym wziąć 4GB RAM FR i przenieść na niego Waterfall i bazę danych.

Większa izolacja usług i więcej zasobów zawsze się przyda. Generalnie serwery Minecraft zmieniają się dość dynamicznie i sam rozwój wysp/działek/regionów graczy powoduje, że mogą zaczynać wymagać większej mocy obliczeniowej z dnia na dzień.

zeetg
zeetg

A w jaki sposób mogę przenieść bazę danych na inny VPS przenosząc ją razem z plikami?

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Rok 2016 przychodzi z pomocą: https://lvlup.rok.ovh/t/jak-przerzucic-cala-baze-mysql-na-inny-vps/801

Istnieje tylko szansa, że nie będziesz mieć pliku /etc/mysql/debian.cnf. Możesz jednak go utworzyć lub jego odpowiednik, wygląda tak:

[client]
user=uzytkownik
password=haslo

Jeśli korzystasz też z np. phpmyadmin, możesz użyć wbudowanej funkcji eksportu/importu.

Scovian
Scovian

To żeby nie powielać wątku napiszę tutaj. Losowe spadki tps, 2 tygodnie temu przy 50 graczach stabilne 20, aktualnie przy 30 graczach potrafi spaść do 15. Zużycie procesora losowo skacze do 100% i długo się utrzymuje a po sprawdzeniu w top parametr steal większość czasu utrzymuje się na poziomie 20 skacząc do 22. Do godziny 14 jest dobrze, potem zaczyna się dramat.

Timingi https://timings.aikar.co/?id=82b94fefb9714e7d95a126373b2f1d9e

KKacper
KKacper

Głównie zawsze powodem takowych spadków TPS na serwerze jest ładowanie "nieodkrytych" chunków przez graczy. Najlepiej wyrenderować mapę przed startem ;)

Scovian
Scovian

To skyblock

KKacper
KKacper

Co z tego kolego! Chunki i tak są niezaładowane poprawnie, plus plugin też tworzy wyspy pewnie na niezaładowanych chunkach. Spróbuj wyrenderować mapę. Komendę znajdziesz na internecie ja jej niestety nie pamiętam.

Scovian
Scovian

Ale patrzyłeś na te timingi? To nie tłumaczy tego ze do godziny 14 jest dobrze a potem zaczyna się dramat. Wcześniej też było dobrze, nawet bardzo dobrze, aktualnie to się dzieje losowo i czasem przy 40 osobach jest dobrze a czasem przy 20 osobach są spadki. Edit, i to nie tłumaczy tak wysokiego steal, wcześniej dochodziło maksymalnie do 10

anon26799942
anon26799942

Kolego, dałeś timing od 20:00 do 21:00. Zrób timing o godzinie, gdy wszystko jest ok i po tej 14. Możesz jeszcze dodatkowo od 13 do 15, żeby było widać przeskok.

Scovian
Scovian

Słuszna uwaga niestety dzisiaj jest to niemożliwe, od rana mam alert o przeciążeniu, tps ciągle na poziomie 15 a steal momentami wylatuje na 41 a średnia to 22

anon26799942
anon26799942

podaj proszę pluginy, jakich używasz

Scovian
Scovian

Mam na vps mysql ale nie używam go. Zainstalowałem dla jednego pluginu ale ostatecznie nie korzystam z niej, mogę sie jej nawet pozbyć. Silnik to oczywiście tuinity na 1.15.2 dodatkowo bardzo mocno zoptymalizowany z poziomu plików tzn, renderowanie, moby, redstone itp

Pluginów teraz nie jestem w stanie podać, ale są w timingach

Jeśli ma to jakieś znaczenie to dodam że po wrzuceniu go na mój pc wszystko działa dość dobrze pomimo słabszego procesora

anon26799942
anon26799942

Scovian:

Jeśli ma to jakieś znaczenie to dodam że po wrzuceniu go na mój pc wszystko działa dość dobrze pomimo słabszego procesora

najprawdopodobniej - bo nie ma graczy

Scovian
Scovian

Nie nie, normalnie z graczami robiłem dla testu bo myślałem że to ja coś skopałem

zeetg
zeetg

Zastosowałem się do tej porady i przeniosłem bazę danych oraz waterfall na VPS 4GB i serwer działa już lepiej, ale w dalszym ciągu są takie spadki przy 60/70 graczach online. Wysyłam timingi do analizy, prosiłbym o jakieś rozwiązanie. https://timings.aikar.co/?id=64457a3ccd904f14908796df311f279a

aggankx
aggankx
  1. krótkie timingsy
  2. jaki masz steal?
zeetg
zeetg

to znaczy?

Aylin
Aylin ex-admin forum.lvlup.pro

aggankx:

jaki masz steal?

Nie wiem ile razy muszę to napisać, ale sam steal to JEDNA metryka z wielu, która sama w sobie nic nie mówi. Jak już kolega ma coś podać to oprócz steala przyda się też zużycie zasobów.

Czyli @zeetg zerknij co wyświetla top (bo tam znajdziesz steal), bardziej czytelne zużycie wyświetli htop, do tego warto też zajrzeć do Proxmoxa i zobaczyć co wyświetlają wykresy dla CPU max w ostatniej godzinie i dniu.

Wtedy będziemy mieć jakiekolwiek rozeznanie co dzieje się z VPSem a nie jedną gołą liczbę.

zeetg
zeetg

2020-11-03|690x368 image|358x275 image|690x301

aggankx
aggankx

brakuje jeszcze top'a

zeetg
zeetg

image|690x367

Axerr
Axerr

image|617x223 Java (przypuszczam, że proces serwera MC) używa ponad 200% CPU, spróbuj zoptymalizować silnik oraz pluginy. Dodatkowo steal wynosi 11%.

zeetg
zeetg

Optymalizowałem serwer już przed startem według kilku poradników, renderowałem mapę za pomocą wtyczki WorldBorder więc nie wiem co mogę jeszcze zrobić i zmienić w pluginach i ogólnie.

Axerr
Axerr

zeetg:

Optymalizowałem serwer już przed startem według kilku poradników Najwyraźniej bezskutecznie.

zeetg:

więc nie wiem co mogę jeszcze zrobić i zmienić w pluginach i ogólnie. Możesz przenieść się na wersję 1.16.4 która jest dość dobrze zoptymalizowana. Przeglądnij też listę swoich wtyczek, może posiadasz jakieś zbędne?

zeetg
zeetg

Zmiana wersji nie byłaby taka prosta i możliwa, ale moje pytanie brzmi czy wersja 1.16.4 jest bardziej zoptymalizowana od wersji 1.12.2? Przyda mi się taka informacja na przyszłość

Axerr
Axerr

W ostatnim czasie Mojang popracował nad optymalizacją. Mój serwer został uruchomiony na wersji 1.16.3 i przy parudziesięciu graczach widniało stabilne 20 TPS.

zeetg
zeetg

Obecnie zmiana wersji nie wchodzi w grę, możliwe że w przyszłości, bo jakieś 3 miesiące temu zmieniłem wersje z serwera z 1.14.4 na 1.12.2. Na ten moment potrzebuję innego rozwiązania.

tirex
tirex

Przy tylu entity co masz na mapie to nie dziwię się, że masz takie spadki TPS (przy 63 graczach masz 4 tysiące entity). Polecam Ci zrobić sobie dłuższe timingsy, na których będziesz mógł dokładnie określić czy w zależności od ilości entity zwiększają/zmniejszają się tps lossy.

Przy największych tps lossach 90% widać, że masz 4150 entity image|214x236

a przy tps loss 9% już masz 3800 entity image|186x192

U siebie na serwerze miałem granicę ok. 2500 entity, przy której różnica w TPSach potrafiła być duża, tzn:

  • przy 2400 entity miałem 20 tps
  • przy 2550 entity miałem 15 tps
Scovian
Scovian

Jak ustawić taki limit?

aggankx
aggankx

Możesz limitować moby np. Farm Limiterem czy zmieniając limit spawnowania się mobów w bukkit.yml

zeetg
zeetg

Co mogę tutaj pozmieniać i na jakie wartości?

spawn-limits:
  monsters: 50
  animals: 8
  water-animals: 3
  ambient: 1
chunk-gc:
  period-in-ticks: 400
  load-threshold: 0
ticks-per:
  animal-spawns: 400
  monster-spawns: 4
  autosave: 6000
aliases: now-in-commands.yml
aggankx
aggankx

To Twoja decyzja co zmienisz i na jakie wartości, proponuję zmniejszyć spawn-limits monsters z 50 na wartość niższą (ja mam 35 + per player mob spawning)

Scovian
Scovian

Screenshot_20201106-170808|281x500

Emm a co jeśli moje wartości wyglądaj tak a nadal mam problem z wydajnością? Timingi z teraz https://timings.aikar.co/?id=58ed93fdbaf4494e9cb3c92825eadd22

Michall
Michall

Używasz Tuinity więc pluginy EntityTrackerFixer,FarmLimiter oraz VillagerOptimiser nie są potrzebne. Sam testowałem + sporo osób z community Tuinity ma podobne zdanie. Jak wykonywałem testy serwery na 1.15.2 oraz na najnowszej 1.16 dawały albo bardzo mało albo wręcz powodowały lagi na serwerze. Spróbuj je odinstalować i zobacz czy coś się poprawi (Każdy serwer jest inny więc nie daje 100% pewnośći że usuwając te pluginy coś ci da pod względem wyjdajnośći.)

I pytanie do ciebie czy próbowałeś przejść na wersję 1.16? 1.15.2 nie jest już wspierane przez tuinity więc nie są tam stosowane nowe opcje które polepszają optymalizacje.

Scovian
Scovian

Wczoraj zmieniłem na 1.16.4, ale ruszyła też nowa edycja i widać będzie dopiero za tydzień. Aktualnie tak to wygląda https://timings.aikar.co/?id=93cc757b37dd471299f04816de800cb3

Z tego co rozumiem z timingów najwięcej zabiera ładowanie chunków, oraz entities, ale entities mam już dość mocno zoptymalizowane (można zajrzeć do pliku w timingach), a na skyblocku gdzie codziennie generują się nowe wyspy nie jestem w stanie wygenerować całej mapy i ustawić borderu.

Michall
Michall

Tak jak wpisałem w poprzedniej odpowiedzi spróbuj usunąć EntityTrackerFixer, FarmLimiter oraz VillagerOptimiser i zobacz czy coś to da. Skyblock jest dosyć ciężko zoptymalizować na nowszych wersjach dlatego większość skyblocków używa wersji 1.12.2 gdzie jeszcze wszystko nie było tak popsute pod względem optymalizacji.

Scovian
Scovian

Usunięte, niestety nadal to samo... https://timings.aikar.co/?id=1d38c5e3e5c14da5aae665e23705ab6c

zmiana na 1.12 niestety nie wchodzi w grę. Gdyby mapy były kompatybilne wstecznie...

zeetg
zeetg

Ja mam obecnie serwer Survival 1.12.2 i jest obciążony nawet po optymalizacji i nie rozumiem dlaczego. Wysyłałem już wiele razy timingi, top, htop, wysokie wykorzystanie CPU i dowiedziałem się tylko tyle, że to przez moby, ale one są już wystarczająco zoptymalizowane i nie wiem co mogę jeszcze zrobić. Czy ktoś może mi pomóc? Wysyłam jeszcze najnowsze timingi z wczoraj.

https://timings.aikar.co/?id=9062a8cff0d245a7bfa20d4100619761

BrixNW
BrixNW

@zeetg a z jakiej wersji javy korzystasz? Patrząc na te ostatnie timingsy nadal widać, że kurczaki obciązają serwer, ogranicz możliwość stakowania się mobów na jednej kratce, to powinno pomóc.

zeetg
zeetg

Java 11. Jak mogę to ograniczyć?

BrixNW
BrixNW

Użyj tej javy: https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u265-b01_openj9-0.21.0/OpenJDK8U-jdk_x64_linux_openj9_8u265b01_openj9-0.21.0.tar.gz Oraz ustaw te parametry startowe (oczywiście zmień ilość ramu i nazwę silnika) java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paperclip.jar nogui

Na moim serwerze zużycie ramu spadło, co prawda było to na wersji 1.16.2 i tuinity, ale myślę, że tobie to też pomoże. Tak czy inaczej ogranicz ilość mobów na jednym bloku.

Scovian
Scovian

zeetg:

Jak mogę to ograniczyć? Również się podpinam bo nadal nie widziałem odpowiedzi

Michall
Michall

Wskaźnik ramu tak naprawdę nic nie znaczy pod względem czy serwer jest zoptymalizowany czy nie. Flagi Aikara również już są w użytku.

BrixNW
BrixNW

Nie, ale jak zacznie go brakować to już jest problem.

zeetg
zeetg

Nie chcę zmieniać javy + już używam tych flag, co chyba widać w timingach. Poraz kolejny proszę o sposób na ograniczenie tej ilości mobów.

zeetg
zeetg

Wgrałem te wtyczkę i dam jutro znać czy coś się poprawiło.

zeetg
zeetg

Jest zauważalna minimalna poprawa, ale w dalszym ciągu problem nie został wyeleminowany w 100%. Wciąż występują spadki TPS.

zeetg
zeetg

Wysyłam najnowsze timingi po wgraniu tej wtyczki. https://timings.aikar.co/?id=57a2a9395a75429f8adfb2716360e574

anon26799942
anon26799942

A może podejrzewasz kogoś do (D)DOSy / crashowanie / botowanie / budowanie redstoneowych lagowarek? A może najzwyczajniej ktoś zbudował ogromną farmę?


W szczytowym momencie masz ~1800 tile entities i ~4000 entities. Spróbuj zbić ich ilość, np.Ultimate Stackerem. Poczytaj sobie jak on działa.

Co dziwne, błąd występuje w tym samym czasie, codziennie. Spróbuj wejść wtedy na serwer i poobserwować graczy, czy nie robią niczego, co mogłoby wpłynąć na wydajność serwera??

Michall
Michall

Pluginy typu Ultimate stacker działają bardziej na szkodę serwera niż tak naprawdę pomagają + paper ma wbudowane mob spawn per player więc pluginy typu właśnie ultimate stacker są słabym rozwiązaniem chyba że prowadzi serwer trybu skyblock. Spróbuj jeszcze wgrać ten plugin https://www.spigotmc.org/resources/entitydetection-tile-entity-support.20588/ (Pokazuje gdzie znajdują się entities oraz przez co lub kogo były spawnowane.

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.