# Fix 'Can't Keep Up!' Error: Complete Minecraft TPS Optimization Guide
The "Can't keep up! Is the server overloaded?" error occurs when your Minecraft server cannot maintain 20 ticks per second (TPS). Fix it by reducing view-distance to 8, simulation-distance to 6, and enabling async chunk loading in paper.yml. This guide shows you the complete optimization process.
Understanding the Error
When Minecraft logs "Can't keep up! Did the system time change, or is the server overloaded?", your server is falling behind the 50ms tick budget. Each game tick must complete in 50 milliseconds to maintain 20 TPS. When processing exceeds this, the server skips ticks, causing lag.
Common Causes:
- Excessive chunk loading (view-distance too high)
- Entity processing overhead (mob farms, hoppers)
- Inefficient redstone contraptions
- Insufficient single-thread CPU performance
Step-by-Step Fix
Step 1: Optimize View-Distance
View-distance controls how many chunks the server loads per player. Default is 10 chunks (160 blocks). Reduce this significantly:
# paper.yml - view-distance settings
view-distance: 8
simulation-distance: 6Impact: Reduces chunk processing by ~40% while maintaining 128-block render distance. Players won't notice visual differences, but server load drops immediately.
Step 2: Enable Async Chunk Loading
# paper.yml - chunk-loading section
chunk-loading:
async-chunks: true
min-load-radius: 2
max-concurrent-sends: 2This offloads chunk generation to background threads, preventing main thread blocking.
Step 3: Tune Entity Processing
# paper.yml - entity activation
entity-activation-range:
animals: 32
monsters: 32
raiders: 48
misc: 16
water: 16
villagers: 32
flying-monsters: 32Entities beyond these ranges remain dormant, reducing AI processing overhead.
Step 4: Optimize Garbage Collection
Add JVM flags for G1GC tuning:
java -Xms8G -Xmx8G \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=200 \
-XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 \
-XX:G1HeapRegionSize=8M \
-jar paper.jarRationale: G1GC minimizes pause times. MaxGCPauseMillis=200 targets sub-200ms collections, preventing TPS drops during garbage collection.
The MANAfuel Difference
The manual fix above works, but requires 30+ minutes of documentation reading and trial-and-error config editing. On MANAfuel, Bob monitors your server's TPS in real-time.
You: "Bob, my server keeps saying 'Can't keep up' and players are complaining about lag."
Bob: "Detected TPS drops to 14-16 during peak hours. Analysis shows chunk loading is the bottleneck. I've optimized view-distance to 8, simulation-distance to 6, and enabled async chunk processing. TPS is now stable at 20. I also pre-generated a 1000-block radius around spawn to eliminate future worldgen lag."
Bob doesn't just apply generic optimizations—he analyzes YOUR server's actual load patterns and tunes settings accordingly. The Grid's DDR5 memory and high-frequency Ryzen 9 CPUs provide the single-thread performance Minecraft requires.
Frequently Asked Questions
/spark profiler start). Check for:- Inefficient plugins (common culprits: DynMap, EssentialsX spawn)
- Massive mob farms causing entity overflow
- Chunk loaders keeping unnecessary chunks active
- Redstone clocks running continuously
