Quick Performance Checklist
1
Use Appropriate Java Version
Paper requires Java 21 or newer. Using the latest Java version provides performance improvements.
2
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.
3
Configure View Distance
Lower view and simulation distances reduce server load significantly.server.properties:
4
Enable Paper's Chunk Loading Limits
Configure per-player chunk loading rates in
config/paper-global.yml: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:double
default:"75.0"
Chunks sent per second per player. Prevents bandwidth saturation.
- High-performance servers: 75-100
- Budget servers: 50-75
- Heavily loaded servers: 30-50
double
default:"100.0"
Maximum chunks loaded per second per player (includes generation checks).
- SSD servers: 100-150
- HDD servers: 50-100
double
default:"-1.0"
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
boolean
default:"true"
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
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