Minecraft Server Optimization: Boost TPS and Kill Lag
Lag is a diagnosis, not a mystery. Measure TPS first, find whether you are CPU-bound, entity-bound or I/O-bound, then apply the handful of settings that actually move the needle — starting with view distance and Paper flags.
Every Minecraft server admin meets lag eventually. The good news: lag is a diagnosis, not a mystery. A server running below 20 TPS is telling you exactly what is wrong through timings reports and config values — you just need to read them in the right order. This guide walks through the measurement first, then the settings that actually fix things on Minecraft game servers, from view distance to Java flags.
Step 1: measure before you touch anything
Run /tps on Paper or Spigot. A healthy server sits at 19.5-20. Next, run /timings report (or /spark profiler if you have it) during a laggy period — not at 4 AM with nobody online. The report ranks plugins and server tasks by the time they consume. The top three entries are your problem; nothing below that matters yet.
Three classic profiles emerge from timings:
- CPU-bound: the main thread is saturated. Usually chunk loading, mob AI or redstone. Fix with settings, not RAM.
- Entity-bound:
entitiesortile entitiesdominate. Fix with limits and culling. - I/O-bound: saves and world loading are slow. Fix with NVMe storage and lower save frequencies.
Step 2: the two settings that fix most lag
view-distance controls how many chunks each player loads and keeps in memory; simulation-distance controls how far those chunks actually simulate (mobs, redstone, crops). The defaults are too generous for public servers. Set view-distance to 8 and simulation-distance to 6 as a starting point — players will not notice the difference in play, and the CPU load drops dramatically.
If your server is still hot after that, pre-generate your world border area. Flying players generating new chunks are the single most expensive operation in the game.
Step 3: Paper and JVM configuration
Paper ships an optimized paper-world-defaults.yml. The flags worth enabling on almost every server:
prevent-moving-into-unloaded-chunks— stops the chunk-generation spike entirely.delay-chunk-unloads-by(10s default) — keeps chunks warm for returning players.- Per-entity and per-tile-entity limits (
max-entity-collisions, hopper limits) — the redstone and mob fixes. - Async chunk loading and saving — already default in modern Paper; verify it is on.
For the JVM, use Aikar's flags (the standard high-performance flag set, published by the Paper team) and size your heap to 70-75% of your plan RAM. If your plan has 8 GB, run with -Xms6G -Xmx6G — equal min/max avoids resize pauses, and the remaining 2 GB stays with the OS and file cache.
Step 4: entities, mobs and redstone
Entities are the silent killer. A single player base with 200 animals, 100 hoppers and a mob farm can cost more than all 40 players combined. Apply per-type spawn limits in spigot.yml, cap hoppers (Paper has hopper limits), and consider a plugin that removes idle entities or unloads idle chunks. Redstone clocks should be limited or cleaned up — a few flying machines left running overnight can halve your TPS.
Step 5: plugins — the good and the expensive
Audit plugins the way you audit code: every plugin runs on your main thread unless it says otherwise. World-editors, protection plugins that scan on every block place, and chat plugins that log synchronously are common offenders. Update everything monthly — plugin performance fixes ship constantly — and remove what you do not use. Twenty plugins doing nothing still cost you boot time and memory.
The maintenance rhythm
- Daily: scheduled restart (clears fragmentation and leaked memory).
- Weekly: check timings during peak, review log warnings.
- Monthly: update Paper, plugins, and prune old worlds/backups.
Follow that rhythm and 20 TPS stops being a battle. If you want hardware that gives the settings room to work, our nodes pair high-clock AMD CPUs with NVMe storage — the two components that Minecraft punishes hardest when they are slow.
Ready to launch on NextyHost?
High-clock AMD game nodes with NVMe storage — built for 20 TPS servers.



