A well-optimized Minecraft server provides smooth gameplay for all players. This guide covers server software choices, configuration tweaks, and best practices to maximize your server's performance.
Choosing the Right Server Software
- 1Vanilla - Official server, no optimizations, not recommended for multiplayer
- 2Spigot - Basic optimizations over vanilla, plugin support
- 3Paper - Significant performance improvements over Spigot, highly recommended
- 4Purpur - Paper fork with additional features and tweaks
- 5Pufferfish - Extreme optimizations for large servers
- 6Airplane - Performance-focused Paper fork
Tip
- Paper is the best choice for most servers - it's fast, stable, and compatible
- Download Paper from papermc.io for the latest builds
- Paper maintains compatibility with Spigot plugins
Java Startup Flags
java -Xms4G -Xmx4G -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 -jar server.jar noguiAikar's optimized flags for 4GB+ RAM servers
Example: Adjust -Xms and -Xmx to match your available RAM
Tip
- Set -Xms and -Xmx to the same value for consistent performance
- Use Java 17 or newer for best performance
- Don't allocate more RAM than needed - it can actually hurt performance
server.properties Optimizations
view-distance=10Reduce from default to lower chunk loading (6-10 recommended)
Example: Lower values = better performance
simulation-distance=8Controls entity/redstone tick distance (separate from view)
Example: Keep lower than view-distance
network-compression-threshold=256Compress packets larger than this size
Example: 256 is usually optimal
Paper-Specific Optimizations
Tip
- Enable async chunk loading for faster world generation
- Reduce entity activation ranges for distant mobs
- Enable hopper optimizations to reduce redstone lag
- Use Paper's anti-xray for cheat prevention without performance plugins
- Configure mob spawning limits based on your player count
World Pre-Generation
/chunky radius 5000Set the radius to pre-generate
Example: Chunky plugin
/chunky startBegin pre-generation
Example: Run during low-activity times
Tip
- Use the Chunky plugin for efficient pre-generation
- Pre-generate during off-peak hours to avoid affecting players
- Consider pre-generating the nether and end as well
General Best Practices
Tip
- Regularly restart your server (daily or every few days) to clear memory
- Limit entity counts with spawn limits and entity cramming
- Use a plugin like ClearLag to remove excess entities
- Monitor TPS (ticks per second) - should stay at 20
- Upgrade to SSD storage for faster world loading
- Consider limiting redstone complexity with plugins
- Remove unused plugins - each one adds overhead
Ready to Start Your Minecraft Server?
Get instant setup, powerful hardware, and 24/5 support with Loafhosts.
Get Minecraft Hosting