Fixing Minecraft server lag: TPS, RAM, and disk fixes

Diagnose Minecraft server lag the right way: check TPS first, then RAM and disk, and only upgrade once you know which one is the real bottleneck.

The short version

Check TPS first. A healthy Minecraft server runs at 20 TPS; anything lower is the server falling behind, which is the only kind of lag the host can fix. Run /tick query or /spark tps. If TPS is 20.0, the problem is your connection or your client, and more RAM will not help.

#What "lag" actually means in Minecraft

"Minecraft server lag" gets used for three different problems, and the fix depends on which one you have. TPS lag is the server itself running slow: mobs glide, hits don't register, redstone stutters. Ping lag is your connection to the server: everyone else is fine, you're rubber-banding. Render lag is your own client struggling with chunks: low FPS, frozen frames. This doc is about the first one, because that's the one the host can actually fix.

#Step 1: check your TPS

TPS (ticks per second) is the server's heartbeat. A healthy Minecraft server runs at 20 TPS. Anything lower means the world is falling behind real time, and that's what your players feel as lag.

Two ways to check:

  • 1.20+ vanilla and most modpacks: run /tick query in-game or from the dashboard console. It prints current TPS and average tick time.
  • Spark profiler plugin or mod: install Spark from Modrinth or CurseForge, then run /spark tps. Works on Paper, Fabric, Forge, NeoForge, and Bukkit derivatives.

If TPS sits at 20.0, your server isn't lagging, your connection or client is. If it's at 15 or below, keep reading.

#Step 2: find the TPS killer

Three culprits cover the vast majority of cases:

#Entity pile-ups

A mob farm with no kill chamber, a villager breeder that ran for a week, or a chunk full of dropped items will tank TPS instantly. Fly out to your farms with /tp and look at the entity count. In Spark, /spark tickmonitor highlights entity-heavy chunks.

#A greedy mod or plugin

One badly behaved addon can eat 80% of your tick time on its own. Run:

/spark profiler --timeout 60

Wait a minute, then open the link Spark prints. The flame graph shows exactly which mod or plugin is hogging the tick. Common offenders: outdated chunk pre-generators, lag-machine dynmap configs, and any mod doing world scans every tick.

#Chunk-loading abuse

Too many chunkloaders, an explorer flying at full elytra speed, or auto-generating world borders will thrash your disk and CPU. Limit chunkloaders, pre-generate the world with Chunky, and set a sensible world border.

#Step 3: check RAM

Open Dashboard → your server → Stats panel. The RAM graph is live. If you're sitting at 95% or higher most of the time, the JVM is spending more cycles garbage-collecting than ticking the world, and no amount of plugin tuning will save you. Upgrade.

The Java tier ladder, for reference:

  • The 3 GB plan is fine for survival with a few friends, no mods.
  • The 6 GB plan handles small modpacks (Create, Better Minecraft lite).
  • The 10 GB plan is the floor for ATM, RLCraft, and most kitchen-sink packs.
  • The 14 GB plan for huge packs, big player counts, or both.

Bedrock is a separate ladder (Lite 2 GB up to Max 12 GB) and uses less RAM per player; 95% sustained still means upgrade.

#Step 4: check disk

If your modpack's world folder and mod cache exceed your plan's disk allocation, every chunk load becomes a stutter. The Stats panel shows disk usage next to RAM. Modpacks like ATM 9 and FTB Skies want plenty of headroom; if you're at 90%+, that's your lag.

Cleaning helps short-term: prune old backups (Files → Backups), delete unused dimensions, run /forceload remove all. Long-term, upgrade.

#Upgrade vs optimise: a one-line triage

If TPS is fine but ping is bad, it's your connection, not the server. If TPS is bad and RAM is below 80%, optimise (Spark, entity cleanup, chunk pre-gen). If TPS is bad and RAM sits at 95%+, upgrade. Don't guess: check the graph.

#Playing a different game?

These steps are Minecraft-specific (Java and Bedrock). Other games have their own lag patterns, so we've split troubleshooting per game:

And if your Minecraft server isn't lagging, it just won't boot, see Minecraft server won't start.

#Frequently asked questions

How do I check TPS on a Minecraft server?

On 1.20 and later, run /tick query in-game or from the dashboard console. Otherwise install Spark and run /spark tps. Both print current TPS and average tick time. 20 TPS is healthy; 15 or below is what players feel as lag.

Will more RAM fix Minecraft server lag?

Only if memory is actually the bottleneck, which shows up as garbage-collection pauses and heap errors rather than steady low TPS. Low TPS with healthy memory is a tick-time problem, and upgrading the plan changes nothing about it.

What causes low TPS on a Minecraft server?

Three causes cover most cases: entity pile-ups from unkilled mob farms or dropped items, a single greedy mod or plugin doing expensive work every tick, and too-high view or simulation distance. Spark's profiler names the culprit rather than leaving you to guess.

Why is only one player lagging?

Then it is not server lag. If TPS is 20 and everyone else is fine, the problem is that player's connection or their client's frame rate, neither of which the server can do anything about.

Written and maintained by the Hostd engineering team. Last updated 2026-05-20. Notice a mistake? Tell us.