On my up-to-date debian buster server installation:
# cat /etc/debian_version
10.7
# java --version
openjdk 11.0.9.1 2020-11-04
OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode, sharing)
# apt-cache policy openjdk-11-jre-headless
openjdk-11-jre-headless:
Instalados: 11.0.9.1+1-1~deb10u2
Candidato: 11.0.9.1+1-1~deb10u2
Tabla de versión:
*** 11.0.9.1+1-1~deb10u2 500
500 http://debian.redimadrid.es/debian buster/main amd64 Packages
100 /var/lib/dpkg/status
11.0.9+11-1~deb10u1 500
500 http://security.debian.org/debian-security buster/updates/main amd64 Packages
# uname -a
Linux eneri 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 4400+
cpu MHz : 2200.000
Minecraft 1.16.5, Forge 36.0.13. I've also tried previous forge versions (all of them 36.0.x) with the same result
When running vanilla server, two java threads are using around 10-20% CPU time when no players are connected. Almost all of this CPU time is user CPU time
Same scenario with forge 36.0, one java thread is using around 10-20% CPU, but another one is always using 100% of one complete core with around 75% sys (kern) CPU time
I've straced the problematic java thread, and it's running this syscall
clock_gettime(CLOCK_MONOTONIC, {tv_sec=204463, tv_nsec=427087879}) = 0
around 11900 times a second.
Is this behavior normal with forge installed or is it a bug ?