Players report “lag”, but is the server really slow, or just the client or the network? TPS, MSPT and a profiler such as spark settle it quickly. This guide is about measuring, not guessing.
We walk through the basic metrics, the profiling steps, how to read the common causes and safe first changes. The commands apply to Paper-based Java servers; they may differ by version and permissions.
1. Measure the basic metrics
The server aims for 20 ticks per second, so one tick can take at most 50 ms. TPS shows the rhythm, MSPT the actual tick length.
| Metric | Healthy | What does a decline indicate? |
|---|---|---|
| TPS | Stable around 20 | The server cannot keep the rhythm. |
| MSPT | Well below 50 ms | Headroom is shrinking; TPS will soon drop. |
| Client FPS | Depends on the player’s machine | Not a server problem. |
| Ping | Depends on distance and network | A network or routing problem. |
/tps
/mspt2. Profile while the slowdown happens
spark gives a useful picture only if it runs during the slowdown. You can run the commands from the console or as a player with suitable permissions.
- Note which activity coincides with the slowdown (exploring, a farm, many players).
- Start the profiler and trigger or wait for the slowdown.
- Stop it and open the report; check which plugin, part of the world or process takes the most time.
/spark tps
/spark health
/spark profiler start --timeout 600
/spark profiler stop3. Interpret the symptoms
| Symptom | Common cause | Action |
|---|---|---|
| Slowdown when exploring new terrain | Chunk generation | Pre-generation or limiting the world border |
| Slowdown near a farm or build | Many entities | Entity limits, reducing farms |
| A freeze that repeats every few minutes | Autosave or garbage collection | Review save timing and the memory allocation |
| One plugin shows an outlier in the profile | A faulty or outdated add-on | Update, configure or replace if needed |
| Worsens with many players | High view and simulation distance | Lower the values in server.properties |
4. Safe first changes
- Take a backup, change one setting at a time and measure again.
- Lower view-distance and simulation-distance in server.properties and watch the effect.
- Update plugins and server software, because many performance bugs are fixed in releases.
- Remove or replace the add-on that stands out in the profile.
5. When RAM and the processor matter
Memory matters when the server genuinely runs out of it. If the main tick thread waits for the processor, more RAM does not speed things up, and an oversized allocation can bring longer garbage-collection pauses. For sizing, see the guide “How much RAM and CPU does a Minecraft server need?”.



