Skip to main content
← All Guides
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.

survival ~ screen -r mc
Ticks / second
05101520
/tps => 12.4 (lagging)
set view-distance: 10 6
set simulation-distance: 10 5
jar spigot.jar paper-1.21.jar [swapped]
[spark] entities/chunk capped 32
/tps => 20.0 (*)
The 50ms budget
  1. 1
    Measure the real TPS
    Run /tps in-game or /spark tps. Anything under ~19 means ticks are taking longer than 50ms and players feel rubber-banding.
  2. 2
    Drop view & simulation distance
    In server.properties set view-distance=6 and simulation-distance=5. This is the single biggest win on a crowded or low-RAM box.
  3. 3
    Switch to Paper
    Replace spigot.jar / vanilla with paper-1.21.jar. Paper async-loads chunks and ships per-world tuning in config/paper-world-defaults.yml.
  4. 4
    Cap entities per chunk
    In paper-world-defaults.yml lower entity-per-chunk-save-limit and mob spawn caps; clear hoarded item frames and named animals.
  5. 5
    Profile what's left
    Run /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.

Blocks and items in this guide

Item Frame in MinecraftItem Frame

Item Frame is named in the guide above. Look them up in the item database.

More guides on this site

Guides that go with this one

Minecraft Server Optimization Guide
Tune your Minecraft server for stable TPS, Paper config, view distance, mob caps, JVM flags and the real...
How to Reduce Entity Lag (Item Frames, Armor Stands)
Practical techniques to reduce entity lag from item frames, armor stands, dropped items, and other...
What Is No-Tick View Distance and Should You Enable It
Understand no-tick view distance in Paper, how it differs from regular view distance, and when to enable...
How to Reduce World Save Lag
Stop your Minecraft server from freezing during auto-saves. Learn how to reduce world save lag minecraft...
How to Set view-distance and simulation-distance Properly
Learn how to configure view distance and simulation distance on your Minecraft server to balance visual...
How to Fix Chunk Loading Lag in Minecraft
Fix slow chunk loading and chunk lag in Minecraft servers and clients. Covers pre-generation, async...
Hosting
Managed Hosting
Skip the setup: a managed server online in minutes.
Database
Command Reference
Syntax, arguments and examples for every command.
Database
Item Database
Every item with its stats, IDs, recipes and uses.
Guides
More Server & Admin guides
Run a server: setup, hosting, permissions, worlds and crossplay.