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:
- 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ć
- 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ć :/