Altay
Running a server

Performance

What actually costs time, and how to find out instead of guessing.

Game logic runs on a single thread at 20 ticks per second. Every tick has 50 ms to do its work. If it needs more, the server falls behind and everything in the game slows down with it.

Measure before you change anything

Config values changed on a hunch are how a working server becomes a broken one. Get a timings report first.

Measuring first

status

Prints memory use, player count, loaded chunks and the current TPS. TPS at 20 and load under 100 % means the server is fine and your problem is elsewhere, usually the network.

timings on
timings paste

Let it run for a few minutes of normal play, then paste. The report ranks what consumed tick time, per plugin and per task. This is the difference between fixing a problem and rearranging config values.

The usual culprits

Memory

Loaded chunks dominate memory use. The limits in pocketmine.yml under memory decide when the server starts trimming caches and when it refuses to load more. Raising the limit on a machine that does not have the RAM only moves the crash later; unloading worlds nobody is in actually fixes it.

Hardware

Single thread performance is what matters, not core count. A CPU with high per core speed beats one with more, slower cores every time. Chunk generation and network handling do use separate threads, so cores are not wasted, but the tick loop itself will never spread across them.

Disk matters more than people expect: chunk saves are frequent, and a slow disk shows up as periodic tick spikes.

Before asking for help

Bring the timings paste and the output of status. "The server lags" without either is a question nobody can answer.

On this page