Performance
How to Reduce Minecraft Server Lag (Get TPS Back to 20)
A laggy server isn't about your internet, it's the tick rate. Here is how to push TPS from single digits back to a clean 20 with a handful of config changes and one profiler run.
The 50ms budget
- 1Measure the real TPSRun /tps in-game or /spark tps. Anything under ~19 means ticks are taking longer than 50ms and players feel rubber-banding.
- 2Drop view & simulation distanceIn server.properties set view-distance=6 and simulation-distance=5. This is the single biggest win on a crowded or low-RAM box.
- 3Switch to PaperReplace spigot.jar / vanilla with paper-1.21.jar. Paper async-loads chunks and ships per-world tuning in config/paper-world-defaults.yml.
- 4Cap entities per chunkIn paper-world-defaults.yml lower entity-per-chunk-save-limit and mob spawn caps; clear hoarded item frames and named animals.
- 5Profile what's leftRun /spark profiler --timeout 120, then open the report. It names the exact plugin or chunk eating tick time so you fix the cause, not guess.
What you need
Tick rate / TPS
Spark profiler
Entity limits
Paper / Purpur jar
Quick answers
?
What is a good TPS?
20 TPS is perfect. Each tick should finish in under 50ms. Sustained values below 19 mean the server is behind and time effectively slows for players.
?
TPS vs FPS, what's the difference?
FPS is your client's render rate. TPS is the server's simulation rate. Low FPS is a video-card issue; low TPS is a server issue and affects everyone equally.
?
Does more RAM fix lag?
Rarely past 6-8GB. Most lag is CPU single-thread bound or caused by chunk/entity load, not RAM starvation. Over-allocating RAM can even worsen GC pauses.
?
Is Paper safe with my plugins?
Yes. Paper is a Spigot superset, so Bukkit/Spigot plugins like EssentialsX, LuckPerms and WorldGuard work unchanged, and most run faster.
?
How do I find the laggy plugin?
Use /spark profiler. The flamegraph attributes tick time to each plugin and task, so you can disable or replace the one actually responsible.
?
What's the fastest single fix?
Lower view-distance. Going from 10 to 6 cuts the chunks the server keeps loaded by roughly 60% and usually recovers several TPS instantly.