Minecraft Server Tuning Guide

Optimizing Minecraft server performance

Zoran · 4 min read · 626 words

Common Server Configuration

server.properties

PropertyTypeDefaultDescription
allow-flightbooleanfalseAllows players to fly in survival mode with flight-enabling mods. May make griefing easier. No effect in creative mode.
allow-netherbooleantrueAllows players to enter the Nether.
broadcast-console-to-opsbooleantrueSends command output to all online OPs.
broadcast-rcon-to-opsbooleantrueSends RCON command output to all online OPs.
difficultystringeasyDefines the server difficulty (damage, hunger, poison effects, etc.). Values: peaceful, easy, normal, hard.
enable-command-blockbooleanfalseEnables command blocks.

Key Performance Settings

view-distance (default: 10) Reducing this significantly improves performance. Recommended: 6–8 for survival servers.

simulation-distance (default: 10) Controls the range at which entities are ticked. Lower values reduce CPU load. Recommended: 6–8.

max-players (default: 20) Set to your actual expected player count. Higher values consume more RAM.

network-compression-threshold (default: 256) Packets larger than this size (in bytes) will be compressed. Lower values increase CPU usage but reduce bandwidth.


JVM Tuning (Java Virtual Machine)

For Paper/Spigot servers, use Aikar’s 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 nogui

Memory Allocation

Player CountRecommended RAM
1–52 GB
5–154 GB
15–306–8 GB
30+8–16 GB

⚠️ Do NOT allocate more than 12 GB for vanilla servers — the G1GC garbage collector becomes inefficient beyond this.


Server Software Comparison

SoftwarePerformancePlugin SupportBest For
VanillaBaselineNonePure survival
SpigotBetterBukkit pluginsSmall servers
PaperExcellentBukkit + Paper pluginsMost servers
PurpurBestAll Paper plugins + extrasPerformance-focused
FabricExcellentFabric modsModded servers

Paper is the gold standard for most Minecraft servers. It patches dozens of performance issues in Vanilla/Spigot while maintaining full plugin compatibility.

Purpur for Extra Performance

Purpur builds on Paper with additional optimizations:

  • Configurable entity activation ranges
  • Ridiculous game mechanic patches
  • Async chunk loading options

Entity & Chunk Optimization

Reduce Entity Count

In bukkit.yml:

spawn-limits:
  monsters: 50
  animals: 8
  water-animals: 3
  water-ambient: 3
  ambient: 2

Chunk Garbage Collection

In paper.yml:

chunk-system:
  auto-save-interval: 6000  # 5 minutes in ticks
  gen-parallelism: 2
  io-threads: 2
  worker-threads: 2

No-Tick View Distance

Paper supports a separate “no-tick” view distance that sends chunks to clients without ticking entities, reducing CPU while keeping visuals:

view-distance: 8
simulation-distance: 6

Monitoring Tools

Spark Profiler

Install Spark for real-time performance profiling:

/spark profiler start
/spark profiler stop

Timings Report

Paper’s built-in timings system:

/timings on
/timings paste

Summary

OptimizationImpactDifficulty
Switch to Paper/Purpur🔴 HighEasy
Aikar’s JVM flags🔴 HighEasy
Reduce view distance🟡 MediumEasy
Lower entity spawn limits🟡 MediumEasy
Pre-generate world🔴 HighMedium
Use Spark profiling🟢 SituationalMedium