100 zużycia procesora i spadki TPS

Pytania i problemy
Pacimir
Pacimir

Witam posiadam serwer FR 4gb i dziś pojawiły się mocne lagi na serwerze, silnik paper 1.17.1 i użycie procesora wynosiło 100%. Optymalizację serwera wykonałem z tematu na tym forum. Mam nadzieje że ktoś mądry mi doradzi co i jak :slight_smile: Tutaj timingi https://timings.aikar.co/?id=ba018ea4a7d9496da3b5c476857fbdf7

Timo
Timo Moderator forum.lvlup.pro

Prześledź poradnik jeszcze raz, nie masz choćby aikarowych flag startowych.

https://lvlup.rok.ovh/t/obszerny-poradnik-dotyczacy-optymalizacji-serwerow-minecraft-1-13/14662?u=timo

Nie wykonałeś jeszcze jakiegoś innego kroku?

Pacimir
Pacimir

Ustawiłem dokładnie wszystko jak w tym poradniku i użycie procesora przy 8 graczach wynosi 100% i tps spada do 15.

Helios1993
Helios1993

water-ambient: 20 monsters: 50 ambient: 1 animals: 8 water-animals: 3

Nie wiem czy wiesz, ale te limity są na każdego gracza. Przy np. 50 graczach na serwerze będzie przynajmniej 2500 potworów. Monsters zmniejsz gdzieś do 10-15, animals do 2-3, a resztę do 1.

Nie zainteresowałeś się notickiem, przyda ci się jeśli o tym poczytasz.

1 wątek procesora to stanowczo za mało, dla serwera mc dobrze jest mieć przynajmniej 2 wątki.

Jeśli nie chcesz zwiększać pakietu to możesz przeczytać spolszczony przeze mnie poradnik optymalizacji.

Pacimir
Pacimir

Przetestuję i dam znać co i jak :)

Szymo
Szymo

Problemem może być: Jeden wątek Zbyt duża ilość pluginów/modów Ticki/moby na serwerze Lub jeżeli jest to vps to wina urochomionych zbyt wielu procesów

aggankx
aggankx

FR 4 GB to trochę cienko jak na mc. 1vCPU mocno boli Timingsy piszą że nie używasz flag aikara rozważ zmianę flag: java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper.jar nogui

tirex
tirex

Z Twoich timingsów wnioskuję, że jakiś z graczy ma sporą farmę kurczaków i krów.

Pacimir
Pacimir

Skorzystałem z poradnika Helios1993 ale dziś pojawiło się takie coś https://timings.aikar.co/?id=7a64f9820849469d9c2d89ecb421e8a3#timings i w sumie nie wiem co robić, czy na 10 graczy naprawdę potrzebne są 2 wątki procesora ?

Helios1993
Helios1993

To co widzę w tych timingach jest bardzo dziwne, z czymś takim się jeszcze nie spotkałem. Tpsy zaczęły spadać aż do 4 gdy dołączył trzeci gracz, widzę w tym dwie opcje:

  1. Uszkodzone dane świata/entity/gracza,
  2. Gracz robiący to celowo.

Podejrzewam drugą opcję, wygląda mi to na ultraszybkie poruszanie się (latanie?) gracza. Dlaczego tak myślę?

  1. PlayerMoveEvent w dwóch pluginach (Matrix i CombatLogX) zjada razem ponad 30% ticka,
  2. Pakiet latania/poruszania się zjada 25% ticka.

Możesz w configu tuinity zmniejszyć ogólny limit pakietów lub dodać limit dla tego właśnie pakietu. Może to źle wpłynąć na zwykłych graczy, więc na to też patrz.

Dodatkowo zalecam usunąć datapacki, które zżerają ci ponad 20% ticka.

aggankx
aggankx

O kurczaki. Serio? datapacki i 1 wątek? :o To przegięcie

Nice catch Helios, 100% ktoś na cheatach zżera TPSy i z tego co widać to antycheaty zamiast ratować dodatkowo dobijają serwer :D

tirex
tirex

Nikt celowo nie porusza się zbyt szybko. Spójrz na ilość ile razy został wywołany event "PlayerMoveEvent" w każdym z przedziałów, które wygerowały timingsy, zawsze wynosi to ~3000 (nawet po tym jak zaczęły się lagi). Dodatkowo u mnie na serwerze przy dwóch graczach ten event wykona się prawie 10x częściej w tym samym czasie, niż u @Pacimir Nie szedłbym tutaj w stronę, że jakiś gracz próbuje celowo użyć tego eventu do zlagowania serwera, bo na 99% jest to błędna droga. Jednak warto się skupić na tym dlaczego event sam w sobie potrafi zużywać 20% ticków serwera. Nie jest to zbyt normalne. Stawiałbym tutaj na brakujące zasoby serwera, bo nie jest to za bardzo możliwe żeby dwa niezależne pluginy, na które zwykle ludzie się nie skarżą zaczęły nagle na tym serwerze zużywać bardzo podobny % ticka. Zwłaszcza biorąc pod uwagę, że taki WorldGuard zużywa prawie 0% kiedy CombatLogX i Matrix ponad 10%

Jednak jak wcześniej zauważyłeś po wbiciu jednego gracza nagle zaczęły się spadki TPSów. Warto zwrócić uwagę na liczbę entity. Najprawdopodobniej serwer jest już na tyle obciążony bez tych mobów, że jak wbije ten gracz, na którego działce jest dosyć dużo (ponad 200) to już wtedy zaczynają się spadki TPSów.

Teraz będę całkowicie strzelać, bo trudno tutaj wyciągnąć konkretne wnioski, ale po zapoznaniu się z kawałkiem kodu CombatLogX nie wydaje mi się, że operacje które wykonuje ten plugin są jakoś super obciążające. Mam dwa podejrzenia co do tego co może powodować problemy:

  1. Zbyt mała ilość ramu i kiedy obliczane jest tzw. "force field" w pluginie CombatLogX to serwer musi kilka razy próbować włączyć GC żeby operację się dało wykonać
  2. Przez zbyt małą liczbę wątków serwera VPS oraz zbyt częste tworzenie nowych wątków rozpoczęcie wykonania operacji asynchronicznej zużywa dużo cputime chcąc stworzyć nowy wątek

Jednak skłaniałbym się tu bardziej do pierwszego podejrzenia, bo Executor w Javie raczej nie tworzy nowego wątku w momencie wykonywania submit tylko wykorzystuje wcześniej już stworzony wątek i wykonanie tej metody nie powinno mieć dużego wpływu na zużycie cputime w głównym wątku. 3 GB ramu to nie jest wcale dużo.

@Pacimir z jakich dokładnie korzystasz funkcjonalności w pluginie CombatLogX? (odpowiedź na te pytanie może być dosyć istotna, bo jeśli nie korzystasz z funkcjonalności "ForceField" to najprawdopodobniej będzie można wyłączyć nasłuchiwanie na ten event).

aggankx:

Timingsy piszą że nie używasz flag aikara Przy takiej małej ilości ramu flagi aikara mogą jeszcze bardziej zaszkodzić :/

aggankx
aggankx

Używam flag aikara przy 2 GB ramu i dają radę :slight_smile: I udało się nawet 10 osób bez lagów na takiej ilości ramu na 1.17.1 utrzymać po odpowiedniej optymalizacji. A takie wzrosty faktycznie mogą być wynikiem albo zbyt małej ilości zasobów, albo faktycznie - wielokrotnie miałem taką sytuację że ktoś cheatami był w stanie tak zbijać TPSy.

Pacimir
Pacimir

CombatLogX używam jedynie aby gracze nie mogli się wylogowywać podczas walki. Czyli serwer 4gb Fr nie jest wstanie pociągnąć serwera mc survival z 10 os ? To przyszłościowo aby grało max 20 os będzie lepsza oferta: 4gb PL czy 8 gb Fr ? Dodam jeszcze że do uruchomienia serwera używam tego: https://bukkit.org/threads/remotetoolkit-restarts-crash-detection-auto-saves-remote-console.674/page-13

Kamil02167
Kamil02167

Przy upgrade polecam iść w stronę 8 GB PL.

Legalin
Legalin

Akurat robię na testowym VPS'ie FR 4 GB (Java 16, Paper 1.17.1) kolejną edycję serwera, więc zobacz sobie jak serwer się zachowuje przy 46 pluginach i 0 osobach na serwerze :p Nic nie pomoże, prócz wykupienia lepszego pakietu :D Dodam jeszcze, że TPSy serwera to okolice 18-20

image|350x260 image|352x245 image|690x277 image|690x270

Pacimir
Pacimir

Czemu pokazuje że zużycie procesora wynosi 100% jak żaden proces nic nie pokazuje ? Serwer wyłącza się wtedy. Nowy obraz mapy bitowej (2)|690x368

Aylin
Aylin ex-admin forum.lvlup.pro

Posortuj procesy wg zużycia CPU a nie nazwy procesu :>

Polecam też użycie w htop Shift+h żeby poukrywać zbędne rzeczy.

Axerr
Axerr

image|690x367

  1. Masz strasznie wysoki load systemowy. Load nie powinien przekraczać liczby procesorów. W Twoim wypadku jednego.

  2. Użycie procesora przez proces Javy wynosi 93%.

Wszystko sprowadza się do tego, że musisz kupić lepszy pakiet.

system
system

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