Spadki TPS serwer minecraft

zeetg | 2020-10-24 15:27:17 UTC | #1

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 | 2020-10-24 15:30:42 UTC | #2

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


zeetg | 2020-10-24 15:32:03 UTC | #3

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


Nieznajomy11 | 2020-10-24 15:33:42 UTC | #4

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 | 2020-10-24 16:41:25 UTC | #5

https://timings.aikar.co/?id=cf08dd9837ef4262b5c8b692421c712a

nowsze przy większej ilości graczy: https://timings.aikar.co/?id=75db2e4251f746cc9a445cc1512c7c11 (10 tps 45 graczy)


zeetg | 2020-10-25 12:02:03 UTC | #6

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


Nieznajomy11 | 2020-10-25 12:31:55 UTC | #7

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 | 2020-10-25 13:23:26 UTC | #8

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 | 2020-10-25 14:33:30 UTC | #9

image|573x115

Obecnie jest 39 graczy online i 15 tps.


Timo | 2020-10-25 16:58:10 UTC | #10

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://forum.lvlup.pro/t/tworzenie-pliku-swap-na-serwerze-vps/8958?u=timo


anon26799942 | 2020-10-25 17:08:51 UTC | #11

[quote=”Timo, post:10, topic:16496”]
Zostaw sobie troszkę więcej pamięci na system
[/quote]
@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ł:

Co możesz spróbować zrobić:

Pozdrawiam :wink:


bopke | 2020-10-25 17:10:39 UTC | #12

[quote=”anon26799942, post:11, topic:16496”]
ustawić bazę danych na Redis-a (ma o wieeele lepszą wydajność od MySQL-ki czy MariaDB-ski)
[/quote]

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 | 2020-10-25 17:11:07 UTC | #13

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


zeetg | 2020-10-25 17:13:18 UTC | #14

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 | 2020-10-25 17:37:33 UTC | #15

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 | 2020-10-25 17:39:31 UTC | #16

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


Nieznajomy11 | 2020-10-25 17:45:43 UTC | #17

Rok 2016 przychodzi z pomocą:
https://forum.lvlup.pro/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 | 2020-10-25 20:26:30 UTC | #18

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 | 2020-10-25 20:27:45 UTC | #19

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


Scovian | 2020-10-25 20:28:18 UTC | #20

To skyblock


KKacper | 2020-10-25 20:29:29 UTC | #21

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 | 2020-10-25 20:37:17 UTC | #22

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 | 2020-10-26 10:44:59 UTC | #23

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 | 2020-10-26 10:46:36 UTC | #24

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 | 2020-10-26 10:49:29 UTC | #25

podaj proszę pluginy, jakich używasz


Scovian | 2020-10-26 10:58:11 UTC | #26

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 | 2020-10-26 11:07:31 UTC | #27

[quote=”Scovian, post:26, topic:16496”]
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
[/quote]

najprawdopodobniej - bo nie ma graczy


Scovian | 2020-10-26 11:08:08 UTC | #28

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


zeetg | 2020-11-02 13:55:51 UTC | #30

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 | 2020-11-02 21:10:43 UTC | #31

1) krótkie timingsy
2) jaki masz steal?


zeetg | 2020-11-02 20:08:26 UTC | #32

to znaczy?


Aylin | 2020-11-02 20:52:29 UTC | #33

[quote=”aggankx, post:31, topic:16496”]
jaki masz steal?
[/quote]

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 | 2020-11-03 14:38:52 UTC | #34

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


aggankx | 2020-11-04 08:33:02 UTC | #35

brakuje jeszcze top’a


zeetg | 2020-11-04 13:54:57 UTC | #37

image|690x367


Axerr | 2020-11-05 10:54:01 UTC | #38

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


zeetg | 2020-11-05 10:57:22 UTC | #39

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 | 2020-11-05 11:08:02 UTC | #40

[quote=”zeetg, post:39, topic:16496”]
Optymalizowałem serwer już przed startem według kilku poradników
[/quote]
Najwyraźniej bezskutecznie.

[quote=”zeetg, post:39, topic:16496”]
więc nie wiem co mogę jeszcze zrobić i zmienić w pluginach i ogólnie.
[/quote]
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 | 2020-11-05 11:09:32 UTC | #41

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 | 2020-11-05 11:11:58 UTC | #42

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 | 2020-11-05 11:13:23 UTC | #43

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 | 2020-11-06 10:41:47 UTC | #44

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 | 2020-11-06 10:55:12 UTC | #45

Jak ustawić taki limit?


aggankx | 2020-11-06 12:39:33 UTC | #46

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


zeetg | 2020-11-06 12:46:08 UTC | #47

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 | 2020-11-06 13:11:00 UTC | #48

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 | 2020-11-06 16:22:26 UTC | #49

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 | 2020-11-10 01:59:12 UTC | #50

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 | 2020-11-10 15:52:14 UTC | #51

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 | 2020-11-10 15:55:59 UTC | #52

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 | 2020-11-11 13:55:58 UTC | #53

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 | 2020-11-11 15:47:08 UTC | #54

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 | 2020-11-11 19:02:12 UTC | #55

@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 | 2020-11-12 10:20:30 UTC | #56

Java 11. Jak mogę to ograniczyć?


BrixNW | 2020-11-12 14:07:35 UTC | #57

Użyj tej javy: https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u265-b01openj9-0.21.0/OpenJDK8U-jdkx64linuxopenj98u265b01openj9-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 | 2020-11-12 16:19:18 UTC | #58

[quote=”zeetg, post:56, topic:16496”]
Jak mogę to ograniczyć?
[/quote]
Również się podpinam bo nadal nie widziałem odpowiedzi


Michall | 2020-11-12 16:46:41 UTC | #59

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 | 2020-11-12 18:24:27 UTC | #60

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


zeetg | 2020-11-12 22:59:57 UTC | #61

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.


Michall | 2020-11-13 02:56:01 UTC | #62

https://www.spigotmc.org/resources/farm-limiter.1419/


zeetg | 2020-11-16 00:16:36 UTC | #63

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


zeetg | 2020-11-16 13:45:14 UTC | #64

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


zeetg | 2020-11-17 12:25:06 UTC | #65

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


anon26799942 | 2020-11-20 09:45:13 UTC | #66

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 | 2020-11-20 22:24:44 UTC | #67

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 | 2020-12-22 22:24:42 UTC | #68

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