Direct answer

A host showing 20% total CPU on a multi-core machine can still have one saturated game thread. Monitor the Java process and compare with spark instead of relying on one dashboard number.

Recommended procedure

  1. Record player count, version, world activity and uptime when lag occurs.
  2. Use top -H -p <PID> for Linux thread-level activity if permitted, and ps -p <PID> -o pid,%cpu,etime,cmd for the Java process.
  3. If hosted in a cgroup v2 container, inspect cpu.max/cpu.stat for quota throttling; compare observations with MSPT.

What to change

ps -p <PID> -o pid,%cpu,etime,cmd
top -H -p <PID>
cat /sys/fs/cgroup/cpu.stat
  1. Capture a spark profile at the actual lag time before removing plugins or changing JVM flags.
  2. If competing jobs are consuming CPU, move them to off-peak hours; for CPU quota/steal problems consult the host.
  3. Track per-thread CPU along with in-game symptoms over multiple samples, not a single screenshot.

How to verify the result

Confirm that the specific hot thread, throttling or profiler cost improves, not just total CPU utilization.

Version and safety notes

top -H thread IDs do not automatically identify a Minecraft function. Folia can use several region tick threads; do not assume its behavior is identical to a traditional main-thread server.

Official references

Was this article helpful?
Help us improve this article

Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.

What could we improve?
Do not include passwords, server IPs, or other private information.0 / 1000