Skip to content
Puranode

Guide

Minecraft Server Lagging? How to Diagnose and Fix TPS

Minecraft lag is three different problems wearing the same costume: low server TPS, high network ping, and low client FPS. Check all three before you change anything, because the fix for one does nothing at all for the other two. In most cases low TPS comes from simulation distance, ungenerated chunks or entity load, and is solved with free config changes rather than a bigger plan.

FAQ

Frequently asked

My server reports 20 TPS but players still say it lags. What is going on?

TPS caps at 20, so it cannot show you how close to the edge the server is. Check MSPT instead: 20 TPS at 46 ms per tick is nearly saturated, while 20 TPS at 8 ms is idle. Run /spark health and look at the 95th percentile. A high percentile with a healthy median means short freezes several times a minute. If MSPT is genuinely low across the board, the complaint is ping or client FPS, not the server.

Will more RAM fix low TPS?

Usually not. The Minecraft tick loop is single threaded, so tick time is limited by one CPU core, not by memory. RAM only matters until garbage collection stops interfering. Check /spark health: if time spent in garbage collection is a low single-digit percentage and pauses are tens of milliseconds, adding heap will change nothing measurable. RAM does fix repeated multi-second freezes with heavy collection activity and out-of-memory crashes in the log. Those look different from steady high MSPT.

How much RAM does a 20 player Minecraft server actually need?

A Paper server running vanilla-style survival with a handful of plugins, sane simulation distance and a pregenerated world typically fits comfortably in a 3 to 4 GB heap at 20 players. Large modpacks are a different workload entirely and often need 6 to 12 GB. If you are on a 4 GB container, set the maximum heap to about 3 GB rather than 4 GB so the JVM has room for off-heap memory such as network buffers, metaspace and thread stacks.

What counts as a good MSPT?

Aim for a median under 25 milliseconds and a 95th percentile under 45. The hard budget is 50 ms per tick, so a median of 25 leaves roughly half the tick free for a full moon, a new player exploring, or a plugin doing something expensive. Above 50 ms the tick rate falls below 20 and the world visibly runs in slow motion. Track the percentile rather than the average, because players notice spikes and not means.

Is 100 ms ping bad for Minecraft?

It is fine for building and survival and noticeable in PvP, where hit registration starts to feel delayed. What matters more is whether the number is near its physical floor. A round trip costs roughly one millisecond per 100 km of fibre, so 100 ms across an ocean is normal and 100 ms from the next country is not. Stability matters more than the raw figure: zero packet loss at 100 ms plays better than intermittent loss at 40 ms.

Why does my server lag at exactly the same interval every few minutes?

Rhythmic lag is almost never player load. A spike roughly every five minutes is the world autosave, controlled by the autosave interval in bukkit.yml and by Paper's limit on how many chunks it writes per tick. Spikes on the hour usually mean a backup or a plugin's scheduled task. Capture a profile while the spike is happening and the periodic work will be at the top of the flame graph, which distinguishes it from steady entity or chunk cost.

Is switching from vanilla or Spigot to Paper worth it?

For most servers it is the single largest free improvement available, and it is a drop-in jar change with the same worlds and the same plugins. Paper adds the profiling and configuration levers this guide depends on, including per-world entity activation ranges and chunk system tuning. The caveat is that a few defaults alter fringe vanilla mechanics, so if your community relies on unusual redstone or farm behaviour, read through config/paper-world-defaults.yml before going live.

Should I just upgrade my hosting plan?

Measure first. Cap simulation distance, pregenerate the world, profile once with Spark, and see where MSPT lands. Most low-TPS reports on small survival servers are fixed by those three steps at no cost. If the profile shows diffuse cost with no hot spot, or system CPU is saturated while your process is not, then the machine is the limit and moving is reasonable. Puranode sells one Minecraft plan and resizes RAM manually on request, so there is nothing to buy before you have the numbers.

Want a Minecraft server without the setup?

4 GB for €10.99/mo, VAT included, online in about 60 seconds.