Managing your Minecraft server
Minecraft Performance and Backups
This guide covers keeping a Minecraft server smooth and protecting your world, for both Java and Bedrock. It applies on top of any of the setup guides: Java: Getting Started, Java: Plugins, Java: Mods, or Bedrock.
Performance Tips (Java)
- Use PaperMC or Purpur, not vanilla. The performance gains over the vanilla jar are large, especially with more than a handful of players. Paper optimizes entity ticking, chunk loading, and dozens of other systems.
- Lower view-distance and simulation-distance. Default 10 each is reasonable; drop to 6 to 8 for crowded servers.
simulation-distanceespecially drives CPU cost, since it controls how far entities and redstone actually tick. - Install Spark for profiling. The Spark plugin (
/spark profiler) identifies exactly which plugins, entities, or chunks are eating your tick time. It is the single best tool for diagnosing lag. - Watch your tick rate. A healthy server holds 20 TPS (ticks per second). Use
/spark tpsor a plugin to monitor. Sustained drops below 20 mean the server cannot keep up. - Cap entities. Mob farms and item-drop accumulation are common lag sources. Paper's
paper-world-defaults.ymllets you cap entities per chunk. - Schedule daily restarts at low-population hours to clear memory fragmentation.
Performance Tips (Modded Java)
- Allocate enough RAM. Large modpacks are memory-hungry; if you see out-of-memory crashes, raise the
Xmxheap size. - Use a performance mod set. Packs increasingly bundle Lithium, Starlight, and FerriteCore (Fabric) or equivalents for big server-side gains.
- Pre-generate chunks. Tools like Chunky generate the world ahead of time so players are not triggering expensive generation while exploring.
- Watch for laggy machines. In automation packs (Create, mekanism), a runaway machine setup can tank the whole server. Spark profiling finds these.
Performance Tips (Bedrock)
- Lower tick-distance. Default 4 is reasonable; drop to 3 on crowded servers. It controls simulated chunks per player.
- Cap max-players realistically. Bedrock is lighter than Java but still benefits from a sane slot count for your RAM.
- Schedule daily restarts like any long-running server.
JVM Memory and Garbage Collection (Java)
The Startup tab exposes the Xmx (max heap) value. A few principles:
- Allocate roughly 75% of your purchased RAM to the heap, leaving the rest for the OS and off-heap overhead.
- More RAM is not always better. Beyond what the server actually uses, extra heap just makes garbage-collection pauses longer. A 20-player Paper server rarely needs more than 6 to 8 GB.
- Modded servers are the exception and genuinely need large heaps.
If you see periodic lag spikes that are not tied to auto-save, they may be garbage-collection pauses. Right-sizing the heap (not over-allocating) usually helps.
Backups
The world folder (named per level-name) is the critical data on both editions. The panel Backups tab snapshots the whole server volume.
Recommended Schedule
- Daily snapshot minimum, via the panel Backups tab
- Twice-daily for busy servers or active build projects
- Before every update (Minecraft version, plugin/mod updates, pack upgrades)
- Monthly download to your own storage for off-platform safety
Automated Backups
Set up an automated daily backup through the Schedules tab:
- Create schedule: "Daily Backup"
- Cron:
0 5 * * *(5 AM server time) - Add task: Create Backup, name pattern
auto-{date}
Plugin Backups Are Not a Substitute
Plugins like EssentialsX offer /backup commands, but they only copy the world to a configured folder on the same volume. They do not protect against volume-level issues the way panel backups do. Use panel backups as your primary safety net.
Scheduled Restarts
Both editions benefit from a daily restart to clear memory creep. From the Schedules tab:
- Create schedule: "Daily Restart"
- Cron:
0 4 * * *(4 AM, before the 5 AM backup) - Tasks (Java, with player warnings via a plugin or
say):- Send Command:
say Server restarting in 5 minutes. - Send Command:
say Server restarting in 1 minute.(offset 240s) - Send Power Action: Restart (offset 300s)
- Send Command:
Common Issues
- "Failed to verify username" (Java): A player without a paid Minecraft account tried to connect while
online-mode=true. They need a real account, or you would have to setonline-mode=false(insecure for public servers, not recommended). - Plugin or mod errors after a Minecraft update: Plugins and mods must be updated for each MC version. Check compatibility before bumping your server version.
- Modded server out of memory: Raise the JVM heap (
Xmx) in the Startup tab. - Lag spikes every 30 seconds or so: Often auto-save. On Paper, tune the save interval, or schedule less frequent full saves. Spark profiling confirms whether saves are the cause.
- TPS drops as the server fills up: Lower view-distance and simulation-distance, profile with Spark, and cap entities. Confirm you are running Paper, not vanilla.
- Bedrock players cannot connect to a Java server: That requires Geyser, not a config change.
What to Read Next
- Java: Getting Started for memory allocation basics
- Java: Plugins (Spark is listed there) for profiling tools
- Java: Mods for modded-specific memory guidance
- How to Create a Backup for the panel backup workflow in detail