Quick Performance Checklist
Use Appropriate Java Version
Paper requires Java 21 or newer. Using the latest Java version provides performance improvements.
Optimize JVM Flags
Use Aikar’s recommended JVM flags for Minecraft servers:
Replace 10G with your desired RAM allocation. Use the same value for -Xms and -Xmx.
Configure View Distance
Lower view and simulation distances reduce server load significantly.server.properties:
View Distance Optimization
Understanding View vs Simulation Distance
View Distance
View Distance
The radius of chunks sent to players. Higher values let players see further but increase:
- Network bandwidth usage
- Client-side performance requirements
- Server memory usage
Simulation Distance
Simulation Distance
The radius where the server simulates entities, random ticks, and spawning. This has the biggest performance impact.Recommended: 4-6 chunks (always ≤ view-distance)
Chunk Loading Rate Limits
Paper’s chunk loading system (GlobalConfiguration.java:40-77) prevents players from overloading the server:Chunks sent per second per player. Prevents bandwidth saturation.
- High-performance servers: 75-100
- Budget servers: 50-75
- Heavily loaded servers: 30-50
Maximum chunks loaded per second per player (includes generation checks).
- SSD servers: 100-150
- HDD servers: 50-100
Maximum chunks generated per second per player. Critical for exploration servers.
- New worlds/exploration: 5-10
- Established worlds: -1 (disabled)
Entity Optimization
Spawn Limits
Reduce mob counts to improve performance (WorldConfiguration.java:180-186):Per-Player Mob Spawns
Enable per-player mob spawning (WorldConfiguration.java:178).Benefits:
- More consistent experience for each player
- Better spawn rates in multiplayer
- Slight CPU overhead but worth it
Despawn Ranges
Adjust how far mobs can be from players before despawning:Reducing these values decreases entity count but may make the world feel less alive.
Tick Optimization
Disable unnecessary entity ticking:Alternative Item Despawn Rates
Reduce lag from common items (WorldConfiguration.java:265-270):Chunk System Performance
Paper’s chunk system (GlobalConfiguration.java:224-235) uses dedicated threads:Chunk Saving
Chunk Save Optimization
Chunk Save Optimization
More chunks saved per tick = shorter save times but bigger lag spikes.
- High tick rate priority: 8-16
- Balanced: 24
- Fast saves priority: 32-48
Keep chunks loaded after players leave. Reduces repeated loading.
- Lots of RAM: 30s-60s
- Limited RAM: 5s-10s
Hopper Optimization
Hoppers are a major source of lag (WorldConfiguration.java:482-488):Redstone Performance
Paper offers alternative redstone implementations (WorldConfiguration.java:573-584):vanilla
vanilla
Standard Minecraft redstone. Use this unless you have specific needs.
alternate_current
alternate_current
Modern optimized redstone implementation. Better performance with some behavior changes.
eigencraft
eigencraft
Legacy optimization. Generally not recommended for new servers.
Anti-Xray Performance Impact
Anti-Xray adds CPU overhead (WorldConfiguration.java:94-131):hide: ~5-10% CPU increase, less effectiveobfuscate: ~15-20% CPU increase, more effective
Network Performance
Packet Limiting
Paper includes packet rate limiting (GlobalConfiguration.java:259-283):Compression
server.properties:- Good internet/LAN: 512-1024 (less CPU, more bandwidth)
- Limited bandwidth: 128-256 (more CPU, less bandwidth)
- Terrible internet: 64 (maximum compression)
Monitoring Performance
Built-in Tools
Spark Profiler
Paper includes Spark for profiling (GlobalConfiguration.java:101-106):Use
/spark profiler to identify lag sources.MSPT Command
Check server tick time with
/mspt:- < 40ms: Excellent (20 TPS)
- 40-45ms: Good
- 45-50ms: Acceptable
- > 50ms: Lagging (< 20 TPS)
Timings
Generate performance reports:World-Specific Performance
Nether Optimization
End Optimization
Database & I/O Optimization
Region File Cache
- Lots of RAM: 512-1024
- Normal RAM: 256
- Limited RAM: 128
Player Auto-Save
Advanced: Tick Rate Configuration
Fine-tune tick rates for various systems (WorldConfiguration.java:533-543):Recommended Configurations
High-Performance Server (16GB RAM, 8+ cores)
Budget Server (4GB RAM, 2-4 cores)
Survival Server (Balanced)
Related Resources
Global Config
Full global configuration reference
World Config
Per-world settings reference
Commands
Server management commands