How to Reduce Lag on Minecraft Server: Complete 2026 Fix Guide

Quick Answer: Minecraft server lag stems from 5 main causes: insufficient RAM allocation (allocate 2GB minimum), CPU bottlenecks (upgrade to Ryzen 9 CPUs), excessive entity counts (use ClearLag plugin), unoptimized plugins (audit with Timings), and poor network routing (choose Netherlands hosting for 5-30ms EU latency). Most lag is fixable through server.properties tweaks and plugin optimization.
Server lag ruins the Minecraft experience. Players complain about rubber-banding, block lag, mob freezing, and inventory delays. In 2026, with modpacks getting heavier and player counts growing, lag optimization is critical.
This guide covers every lag source and fix - from basic server.properties tweaks to advanced CPU/RAM optimization.
Table of Contents
- Understanding Server TPS vs Client FPS
- RAM Allocation and Garbage Collection
- CPU Performance Optimization
- View Distance and Chunk Loading
- Entity and Mob Management
- Plugin and Mod Audit
- Network Latency Fixes
- Server.properties Optimization
- Common Questions
1. Understanding Server TPS vs Client FPS
What is TPS?
TPS (Ticks Per Second) measures server performance. Minecraft runs at 20 TPS ideal - meaning 20 game ticks per second (50ms per tick).
- 20 TPS: Perfect performance, no lag
- 15-19 TPS: Slight lag, noticeable delays
- 10-14 TPS: Moderate lag, block delays, mob stuttering
- < 10 TPS: Severe lag, unplayable
TPS vs FPS
- FPS (Frames Per Second): Client-side rendering speed (player's computer)
- TPS (Ticks Per Second): Server-side game logic speed
Low TPS affects everyone. Even players with 300 FPS experience lag when server TPS drops below 20.
Check Server TPS
Install Spark plugin or use /tps command (requires permissions).
/tps
Output example:
TPS: 19.8, 19.5, 18.9 (1m, 5m, 15m average)
Anything below 19.5 indicates performance issues.
2. RAM Allocation and Garbage Collection
How Much RAM Does Your Server Need?
| Server Type | Players | RAM Required |
|-------------|---------|--------------|
| Vanilla 1.20+ | 5-10 | 2-4GB |
| Vanilla 1.20+ | 20-50 | 6-8GB |
| Light plugins (10-15) | 10-20 | 4-6GB |
| Heavy plugins (20+) | 20-50 | 8-12GB |
| Modpacks (ATM10, Better MC) | 10-20 | 12-16GB |
| Large modpacks (200+ mods) | 10-20 | 16-24GB |
Optimize Java Startup Flags
Use Aikars flags for better garbage collection:
java -Xms8G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar nogui
Key points:
-Xms8G -Xmx8G: Set min and max RAM to same value (prevents resizing lag)-XX:+UseG1GC: Use G1 garbage collector (better than default)-XX:MaxGCPauseMillis=200: Limit GC pauses to 200ms
Avoid Common RAM Mistakes
❌ Don't: Allocate all server RAM to Minecraft (leave 1-2GB for OS)
❌ Don't: Use 32GB+ RAM (diminishing returns, GC overhead)
✅ Do: Match RAM to actual need (monitor with /spark heapsummary)
3. CPU Performance Optimization
CPU Matters More Than RAM
Minecraft is single-threaded - it primarily uses 1 CPU core for main game loop. Fast single-core speed is critical.
Best CPUs for Minecraft servers:
- AMD Ryzen 9 7950X (5.7GHz boost) - Excellent
- AMD Ryzen 7 5800X (4.7GHz boost) - Great
- Intel i9-12900K (5.2GHz boost) - Great
- Budget: AMD Ryzen 5 5600X (4.6GHz boost) - Good
Avoid: Old Intel Xeons (2.4GHz), budget Celerons, ARM processors.
Paper/Purpur for Multi-Threading
Vanilla Minecraft doesn't multi-thread well. Use Paper or Purpur server software:
- Paper: Optimizes redstone, entity AI, lighting (20-40% better performance)
- Purpur: Adds multi-threading for tasks like mob AI, chunk loading
Download from PaperMC.io or PurpurMC.org.
4. View Distance and Chunk Loading
Reduce View Distance
server.properties:
view-distance=6
simulation-distance=4
- view-distance: How far players can see (default 10, reduce to 6-8)
- simulation-distance: How far mobs/crops/redstone work (default 10, reduce to 4-6)
Impact: Reducing from 10 → 6 cuts chunk processing by ~40%.
Pre-Generate Chunks
Use Chunky plugin to pre-generate world before players join:
/chunky world world
/chunky radius 5000
/chunky start
This prevents chunk generation lag during gameplay.
5. Entity and Mob Management
Limit Entity Counts
spigot.yml:
entity-activation-range:
animals: 16
monsters: 24
raiders: 32
misc: 8
water: 8
villagers: 16
flying-monsters: 32
Reduces AI processing for distant entities.
Clear Lag Plugin
Install ClearLag to auto-remove dropped items, excess mobs:
/lagg clear - Remove ground items
/lagg killmobs - Kill excess mobs
/lagg area 20 - Check entities in 20-block radius
Configure auto-clear every 10 minutes in config.yml.
Limit Farms
Players build massive mob grinders, iron farms, villager breeders. Set limits:
paper.yml:
max-entity-collisions: 2
bukkit.yml:
spawn-limits:
monsters: 50
animals: 8
water-animals: 5
ambient: 1
6. Plugin and Mod Audit
Use Spark or Timings
Identify laggy plugins:
/spark profiler --timeout 300
Wait 5 minutes, then:
/spark profiler --stop
Upload results and check which plugins consume most CPU.
Common Laggy Plugins
❌ Avoid: Old versions of EssentialsX, outdated permissions plugins, massive world editors
✅ Use: LuckPerms (modern permissions), CoreProtect (optimized logging), Vault (lightweight economy)
Plugin Alternatives
| Laggy Plugin | Better Alternative |
|--------------|-------------------|
| WorldEdit (old) | FastAsyncWorldEdit (FAWE) |
| EssentialsX (outdated) | EssentialsX (latest version) |
| PermissionsEx | LuckPerms |
| Multiverse-Core (heavy) | Multiverse-Core (latest) |
7. Network Latency Fixes
Choose Better Server Location
Latency (ping) affects block placement, PvP, inventory actions.
European servers:
- Netherlands (Amsterdam): 5-30ms for 70% of EU players
- Germany (Frankfurt): 10-40ms
- UK (London): 15-50ms
North American servers:
- US East (New York): 20-60ms for East Coast, 70-120ms West Coast
- US West (Los Angeles): 20-60ms for West Coast, 80-140ms East Coast
Space-Node Minecraft hosting uses Netherlands datacenters for optimal EU latency.
Optimize Netty Settings
server.properties:
network-compression-threshold=256
Lower values (256) reduce bandwidth but increase CPU usage. Default is 256.
8. Server.properties Optimization
Full Optimized Configuration
server.properties:
# View/Simulation Distance
view-distance=6
simulation-distance=4
# Network
network-compression-threshold=256
max-tick-time=60000
# Spawn Protection
spawn-protection=0
# World Settings
max-world-size=10000
spigot.yml:
# Mob Spawn Ranges
mob-spawn-range: 4
# Entity Activation Range
entity-activation-range:
animals: 16
monsters: 24
raiders: 32
misc: 8
# Merge Radius
merge-radius:
item: 3.5
exp: 4.0
# Tick Rate
item-despawn-rate: 3000
arrow-despawn-rate: 600
paper.yml:
# Performance
max-auto-save-chunks-per-tick: 8
optimize-explosions: true
treasure-maps-return-already-discovered: true
# Anti-Xray
anti-xray:
enabled: true
engine-mode: 2
Common Questions
"Why is my server lagging with only 5 players?"
Check these in order:
- TPS: Run
/tps- if below 19, you have server-side lag - RAM: Allocate at least 2GB for vanilla, 4GB for plugins
- CPU: Check single-core speed (need 3.5GHz+ boost clock)
- Plugins: Use
/spark profilerto find laggy plugins - Chunks: Reduce view-distance to 6 in server.properties
Most "5-player lag" comes from insufficient CPU or laggy plugins like old EssentialsX versions.
"What's the difference between server lag and client lag?"
Server lag (low TPS):
- Affects everyone simultaneously
- Mobs freeze, blocks delay, inventories slow
- Check with
/tpscommand - Fix: More RAM/CPU, optimize server.properties
Client lag (low FPS):
- Only affects individual player
- Stuttering graphics, choppy movement
- Check with F3 debug screen (bottom right FPS counter)
- Fix: Better GPU, lower render distance, install OptiFine
"Should I use Vanilla, Spigot, Paper, or Purpur?"
Performance ranking (best to worst):
- Purpur - Paper + multi-threading + extra optimizations (best for 20+ players)
- Paper - Spigot + async chunk loading + redstone optimizations (great for 10-50 players)
- Spigot - Vanilla + basic performance tweaks (good for 5-20 players)
- Vanilla - No optimizations (only for singleplayer or small 2-5 player servers)
Recommendation: Use Purpur for best performance with full plugin compatibility.
"How do I fix TPS drops during chunk generation?"
Pre-generate world with Chunky plugin before opening server:
/chunky world world
/chunky radius 5000
/chunky start
This generates 10,000x10,000 block area (5000 block radius from spawn). Wait 1-6 hours depending on CPU.
Alternative: Reduce view-distance to 4-6 to minimize new chunk generation during gameplay.
"Can I host 100+ players on one Minecraft server?"
Yes, but requires:
- 24-32GB RAM
- AMD Ryzen 9 or Intel i9 CPU (5.0GHz+ boost)
- Purpur server with multi-threading
- NVMe SSD for chunk I/O
- Optimized plugins (avoid EssentialsX, use LuckPerms, CoreProtect)
- Pre-generated world to prevent chunk gen lag
Most hosts cap at 50-100 players per server. For larger networks, use BungeeCord with multiple backend servers.
"Why does lag happen only at certain times?"
Scheduled events cause periodic lag:
- Auto-save: Every 5 minutes (6000 ticks) - configure with
save-intervalin bukkit.yml - Plugin tasks: Some plugins run tasks every X minutes (check with
/spark profiler) - Backups: If backup runs during peak hours, move to off-hours (3-6 AM)
- ClearLag: Auto-removal of items every 10 minutes causes brief TPS drop
Use /spark profiler --timeout 600 during lag spike to identify cause.
Final Checklist: Lag Reduction Priority
- ✅ Allocate 2-4GB RAM minimum (use Aikars flags)
- ✅ Reduce view-distance to 6-8 (server.properties)
- ✅ Use Paper or Purpur (not vanilla)
- ✅ Pre-generate world with Chunky
- ✅ Audit plugins with Spark profiler
- ✅ Limit entities with ClearLag plugin
- ✅ Optimize spigot.yml and paper.yml (copy config above)
- ✅ Choose better hosting (Ryzen 9 CPU, NVMe SSD, Netherlands location)
Still lagging? Upgrade to Space-Node Minecraft hosting with AMD Ryzen 9 CPUs @ 5.4GHz, NVMe SSD, and optimized network routing for 5-30ms EU latency. Plans from €0.90/month.
Related guides:
