DDoS czy po prostu MC 1.14.4 jest tak niestabilne?

Zombie
vps, minecraft, kvm
r3cord
r3cord

Witam! Przychodzę do was z nurtującym mnie pytaniem. Prowadzę serwer minecraft na maszynie KVM 8GB i potrafi mi wywalić serwer przy 15-25 osobach online (17 pluginów). Trochę rozumiem, że 1.14.4 ma słabą optymalizację, ale no bez przesady. Macie jakiś sposób na naprawę tego? To jedna sprawa, ale bardziej mnie interesuje to co się stało dzisiaj, 24 osoby na serwerze, nagle tps drastycznie spada do 10, RAM skacze jak szalony i wywala serwer. Nie dziwiło by mnie to gdyby nie to, że serwer uciągnął atak botów, łącznie około 1500. Więc postanowiłem sobie wejść na proxmoxa i sprawdziłem zużycie RAMu, bo podczas tego obciążenia nie mogłem zalogować się do PuTTy. Warto zaznaczyć, że na serwer mam przeznaczone 7168MB, czyli cały 1GB jest wolny na działanie maszyny i utrzymanie prostego ItemShopu, a wchodząc w proxmoxa ujrzałem taki oto widok: wykres|690x252

Pełne zużycie RAMu maszyny, czy to mógł być jakiś DDoS? Bo jednak na MC mam przeznaczone 7GB, czyli nie powinno być całkowitego zuzycia RAMu maszyny. Jakieś sugestie?

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Mimo ustawienia parametru Xmx na 7G może dojść do sytuacji, że JVM ukradnie więcej niż ten limit. Parametr ten odpowiada tylko za limit heap, czyli takiej podstawowej przestrzeni, gdzie java alokuje swoje objekty, są jeszcze inne flagi, takie jak:

-XX:PermSize
-XX:MaxPermSize
-Xss

Nazwałbym je jednak bardziej zaawansowanymi i nie zalecam zbytnio zmiany ich wartości.

Timo
Timo Moderator forum.lvlup.pro

r3cord:

nagle tps drastycznie spada do 10 Zrób timingsy. Pomogą zdiagnozować problem. /timings on i po jakimś czasie /timings paste.

A co do RAM-u to tak jak przedmówcy, sprawdzanie w Proxmox nie odzwierciedla rzeczywistej sytuacji z wolną pamięcią. Java allokuje zazwyczaj wszystko co może, a system może używać wolnej pamięci jako cache.

r3cord
r3cord

https://timings.aikar.co/?id=002374dc47ad4ac08465874dad365106 Proszę o to timingsy, trochę czerwonego jest. Robione przy 14 osobach online, serwer pokazuje stałe 20 TPS.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

To tylko pojedyncze ticki, które trwały dłużej niż powinny. Serwer działa stabilnie, nie ma tps loss. Aby określić, co zjada pamięć, musiałbyś zrobić heap dump i użyc np. eclipse memory analyzer. Druga opcja to jakieś VisualVM, pewnie też da radę.

r3cord
r3cord

Okej, postaram się tym VisualemVM ogarnąć. Ogólnie to znalazłem takie flagi optymalizacyjne na necie: java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:MaxGCPauseMillis=100 -XX:+DisableExplicitGC -XX:TargetSurvivorRatio=90 -XX:G1NewSizePercent=50 -XX:G1MaxNewSizePercent=80 -XX:G1MixedGCLiveThresholdPercent=35 -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -Dusing.aikars.flags=mcflags.emc.gs -jar paperclip.jar Pomogłyby choć trochę w stabilności?

SystemZ
SystemZ Admin lvlup.pro

MC 1.14 biorąc pod uwagę tickety i rozmowy na discordzie to porażka wydajnościowa. Jak jest w rzeczywistości to pewnie zależy od przypadku.

Dla mnie osobiście JVM to trochę czarna magia, nie stosowałbym flag których nie rozumiem, zwłaszcza że jest ich tak dużo. Sugerowałbym wprowadzać je po jednej, notować wyniki w miarodajny sposób i wtedy decydować czy używać w produkcji.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

To flagi aikara, twórcy PaperSpigot. Mogę je polecić, są w porządku do używania, a już na pewno lepsze niż odpalanie serwera java -jar spigot.jar. Skupiają się one głównie na jednej rzeczy, więc wprowadzanie "po jednej", dużo sensu raczej nie będzie mieć. Tutaj źródło (zresztą dostępne też w parametrze using.aikars.flags): https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/

image|690x219

r3cord
r3cord

Powiem wam, że to jest masakra, 40 osób i wywala serwer. Teraz miałem taki spam w logach: https://pastebin.com/Zp7PhUy8 Jeszcze nie było dnia, żeby nie wywaliło serwera, ale chyba będę musiał się z tym pogodzić i czekać na 1.15 :c Spróbuję jeszcze odpalić serwer z tymi flagami, tylko właśnie też coś mi to nie działa. Ale no muszę próbować. Ma ktoś jeszcze jakiś sposób na optymalizację oprócz tych flag?

r3cord
r3cord

Nie rozumiem tez innej rzeczy, tps na poziomie 14-15, a żadnych lagów nie ma, gracze nic nie narzekają :thinking: https://timings.aikar.co/?id=526111cbf3764f648175bc85c3cf50e0

SystemZ
SystemZ Admin lvlup.pro

r3cord:

wywaliło serwera

Po logach rozumiem że chodzi Ci o crash serwera MC (wyłączenie się procesu). Każdy może mieć trochę co innego na myśli i inne osoby ze zbliżonym problemem mogą wyciągnąć złe wnioski z tego wątku.

Piszę o tym ze względu na to że w ticketach klienci tak samo mówią na:

  • restart VM
  • odcięcie sieci VM
  • crash procesu aplikacji
  • niską wydajność aplikacji
  • udany atak DoS
  • udany atak DDoS
  • brak wolnej pamięci RAM
  • za mało CPU

a rozwiązania do tych problemów są zazwyczaj zupełnie inne

aggankx
aggankx

To o czym mówisz jest dość "normalne" na 1.14

Moje timingsy wyglądają podobnie [chociaż gorzej ale to pewnie dlatego że Ty masz 1k entity a ja 7k entity ;)]

Od siebie tylko dodam, że mi na najnowszym paperze też wywalało serwer Ten "spam" o którym mówisz na konsoli był omawiany na dc paper'a i mi odpisali że "widocznie gracze za szybko chunki ładują". Well... Paper-213 to ostatni paper na którym nie mam problemów i jest moim zdaniem najwydajniejszy i z niego korzystam bo nie wywala mi serwera XD [Ze starej wersji paper'a korzystam na własną odpowiedzialność]

r3cord
r3cord

Raz całkowicie zrobił mi się reboot vps, ale to tylko raz, a tak to chodzi mi o crash serwera MC. Przepraszam za moją nieścisłość.

r3cord
r3cord

Okej, spróbuję jeszcze flagami naprawić, ale jak nic nie pomoże to też wezmę starszą wersję Papera i zobaczymy co to będzie. Trzeba kombinować, dzięki!

system
system

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