Fix Minecraft Server TPS Drops
Fix Minecraft server TPS drops by profiling Spark, checking MSPT, entities, chunks, plugin tasks, view distance, memory, and hosting limits.
TPS drops mean the server main thread is not completing ticks quickly enough. Guessing at settings can make performance worse, so start with a profile captured during the actual lag window.
Capture a Profile During the Problem
Use Spark or your platform's recommended profiler while the lag is happening. A profile captured when nobody is online will not explain evening lag.
/spark profiler --timeout 120
Look for main-thread hotspots, plugin tasks, chunk generation, entity AI, hopper activity, redstone clocks, world saves, and database calls. If the log also contains Can't keep up! Is the server overloaded?, paste a focused excerpt into the startup log classifier to confirm the pattern.
Separate TPS, MSPT, Memory, and Ping
These symptoms get mixed together:
- TPS shows whether the server is keeping up with ticks.
- MSPT shows how long each tick takes.
- Memory pressure shows whether garbage collection is interrupting the server.
- Ping shows network delay between the player and server.
A server can have low ping and terrible TPS. It can also have 16 GB of RAM and still run at 12 TPS if the CPU is saturated.
Huge heaps can create longer garbage collection pauses. Give the server enough memory, then fix the actual workload.
Check Chunks and Distance Settings
view-distance controls how many chunks players can see. simulation-distance controls how many chunks run entity and block ticking. Reducing simulation distance often helps more than reducing view distance alone because it reduces active work.
Start with the view distance vs simulation distance guide before applying aggressive values. A survival server with farms and villagers needs different tradeoffs than a minigame hub.
Audit Entity Load
High entity counts often come from villagers, farms, item piles, armor stands, projectiles, minecarts, pets, and poorly controlled mob spawning. Measure per world and per region before applying global caps.
Good fixes are targeted:
- Clear item piles from specific farms.
- Reduce excessive villagers in loaded chunks.
- Limit always-loaded farms.
- Tune activation ranges carefully.
- Fix mob cap behavior instead of deleting all entities on a timer.
Review Plugin Tasks
Plugins that scan chunks, update scoreboards too often, query storage synchronously, or run large protection lookups can dominate the tick. Update, reconfigure, or replace the specific plugin instead of blaming the whole stack.
If a plugin only spikes when many players join, check joins, placeholders, permissions, economy lookups, tab lists, chat formatting, and database connections.
Tune Paper and JVM Settings After the Profile
Once the largest cost is clear, use focused changes:
- Adjust Paper or Purpur settings for distances, entities, hoppers, and saves.
- Use the Paper performance settings guide for safe areas to review.
- Generate conservative JVM flags with the JVM flag generator if garbage collection appears in the evidence.
Change one area, restart cleanly, profile during the same player pattern, and keep only the changes that actually improve MSPT.
FAQ
Is more RAM the best fix for TPS drops?
Usually no. Too little RAM causes garbage collection pressure, but recurring low TPS is often limited by CPU, entities, chunks, or plugin work on the main thread.
What TPS should I target?
A healthy Java server targets 20 TPS. Short dips can happen, but recurring low TPS needs profiling and workload reduction.
Should I restart every time TPS drops?
Restarting can hide the evidence. Capture a profile first if the server is still usable, then restart only if players are stuck.
Related Tools
Startup Log Classifier
Paste a Minecraft startup log excerpt to classify Java mismatch, port conflicts, memory errors, plugin failures, dependency issues, and TPS overload.
Minecraft JVM Flag Generator
Generate practical Minecraft server JVM flags for Paper, Purpur, Forge, Fabric, and Velocity with sensible heap sizing and GC reminders.
Server Lag Diagnostic Wizard
Diagnose Minecraft server lag by separating TPS, MSPT, chunks, entities, plugins, villagers, hoppers, disconnects, FPS, and player-specific issues.
Related Articles
How to Fix Can't Keep Up Is the Server Overloaded
Fix Minecraft Can't Keep Up server overloaded warnings by checking TPS, MSPT, Spark profiles, chunks, entities, plugins, world saves, and hosting limits.
Paper Performance Settings That Matter
Tune Paper and Purpur performance settings that affect TPS, MSPT, entities, hoppers, chunks, autosaves, view distance, and gameplay.
Best View Distance for Minecraft Server Performance
Choose the best Minecraft server view distance for performance by balancing chunks, player count, simulation distance, exploration, TPS, and hardware limits.