New Site LaunchSave 15% on your first month withFAST15
Lagless
All posts
minecraftperformancetpstroubleshooting

Why Your Minecraft Server's TPS Drops (And How to Actually Fix It)

By The Lagless Team·April 28, 2026·5 min read
Why Your Minecraft Server's TPS Drops (And How to Actually Fix It)

Tick rate (TPS) is the single most important performance metric for a Minecraft server. Vanilla aims for 20 TPS. Anything under 18 feels laggy to players — mobs walk weird, blocks lag when you place them, your buddy's pickaxe swings into thin air.

When TPS drops, the advice you usually get online is "add more RAM" or "switch to Paper." Sometimes that's right. Often it's not. Here's the actual decision tree.

Step 1: Figure out what's actually happening

Before fixing anything, run a profile. The tools depend on your setup:

  • Forge / NeoForge: /forge tps shows the rolling 5/15/60-second TPS per dimension
  • Fabric: /spark tps (after installing Spark — should be on every server)
  • Paper / Spigot: /spark profiler --timeout 30 runs a 30-second profile and outputs a flame graph URL

Run the profile during the lag, not after. The output tells you which mod, which entity, or which dimension is eating ticks.

If you don't have Spark installed, install Spark. It's the single most useful Minecraft server admin tool, free, runs on every loader. Don't troubleshoot TPS without it.

The five real causes (in order of frequency)

1. Single CPU thread is saturated

The most common cause, by far. Minecraft's main game loop is single-threaded. Every tick of every entity, every block update, every player action runs on one CPU thread. If that thread maxes out, TPS drops — regardless of how much RAM you have or how many cores your CPU has.

How to identify: Spark profile shows long ticks in MinecraftServer#runServer or specific mod logic. CPU load is high on one core, idle on others.

Real fixes:

  • Faster CPU (clock speed matters — Ryzen 9950X at 5.7 GHz beats a 5-year-old Xeon at 3.0 GHz by a lot)
  • Reduce entity counts (fewer mobs, fewer items, fewer auto-farms running 24/7)
  • For Forge: check Spark for specific mods that hog ticks. Common offenders: Mekanism reactor sim, Refined Storage networks
  • For Paper: enable async chunks if your version supports it

Don't: Throw more RAM at it. Single-thread saturation isn't a memory problem.

2. Chunk loading is too slow

Chunks load when players move into new territory or teleport. If your server's storage can't keep up, the player waits for the chunk — and if a tick is mid-flight, TPS drops while the chunk system blocks.

How to identify: Lag spikes when players move fast (elytra, /tp, dimension-cross). Otherwise smooth.

Real fixes:

  • NVMe SSD (7 GB/s) instead of SATA SSD (500 MB/s) or HDD
  • Pre-generate world borders with WorldBorder fill or Chunky
  • Reduce view distance (8–10 chunks server-side is plenty for most modpacks)
  • Increase pre-cached chunk count if your loader supports it

Don't: Add RAM. The chunks live on disk; the bottleneck is read speed.

3. RAM saturation triggering GC pauses

When RAM fills up, Java's garbage collector runs. Long GC pauses freeze the server — that's a real TPS hit. But people over-attribute TPS issues to RAM.

How to identify: Spark profile shows long pauses in GC stages. Heap usage is consistently above 80–90%.

Real fixes:

  • Add RAM (this is the case where adding RAM actually helps)
  • Use Aikar's flags for modded packs (G1GC tuned for Minecraft GC patterns)
  • For Forge: check that your mods aren't leaking entities or chunks
  • Pre-load common chunks to spread allocation pressure

Don't: Just blindly add RAM until it works. If your heap is at 50% and you add more, the issue isn't memory.

4. A specific mod is misbehaving

Some mods are TPS killers under specific conditions. Refined Storage networks with thousands of items, Mekanism digital miners running on the same chunk, Botania mana flow loops, Thaumcraft research nodes that cascade.

How to identify: Spark profile names a specific mod or mod method consuming most of the tick.

Real fixes:

  • Update the mod (often the patch notes mention performance fixes)
  • Configure the mod (most heavy mods have config files for limiting expensive operations)
  • Replace the mod with a lighter alternative (e.g., Refined Storage → AE2 in many cases)
  • Quarantine the offender to a separate dimension

Don't: Add hardware. Hardware doesn't fix bad mod logic.

5. Network or disk I/O is blocking

Less common but real. Sometimes a slow backup, a network hiccup, or another process on a shared box is pausing your server's I/O.

How to identify: Spark shows pauses in I/O-related work, or TPS drops correlate with backup schedule, or a neighbor on a shared box is eating resources.

Real fixes:

  • Move backups to off-peak hours
  • Run backups via copy-on-write snapshots (zero-overhead)
  • If on a shared host, switch to a less-oversold provider

What we run for TPS-friendly hosting

This is the part where we plug ourselves, but it's relevant to the troubleshooting flow. Lagless runs:

  • AMD Ryzen 9950X (5.7 GHz boost) — fastest single-thread clock you can get on a server CPU
  • DDR5-6000 ECC RAM — fast memory + corruption protection for long-running worlds
  • NVMe Gen 4 (7 GB/s) — chunk loads invisible
  • Sane density — we don't pack 50 servers on a box. Your neighbors aren't tanking your TPS.

If you've worked through the troubleshooting steps above and your TPS is still bad, you're probably on a host that oversells. The fix is changing hosts, not changing your server.

TL;DR

  1. Always profile with Spark before fixing
  2. Most TPS drops are single-thread CPU saturation, not RAM
  3. Slow chunks = NVMe issue
  4. RAM only helps if your heap is genuinely full
  5. Sometimes it's just a bad mod
  6. Sometimes it's just a bad host

See our hardware specs → · Try free for 48 hours →

Ready to spin up a server?

Online in 60 seconds. 48-hour free trial. No credit card required.

Build your server

Free for 48 hours

No credit card · 60s deploy

Start