← Blog

Comprendre et corriger les chutes de TPS sur un serveur Minecraft

Par Benjamin D. · PDG

· Mis à jour le September 20, 2026 · Lecture 7 min

Contents

Minecraft server TPS is the single number that tells you whether your world is running smoothly or choking on its own tick loop, and most admins chase the wrong fix when it drops. Before touching allocated memory or swapping plugins, you need to understand what actually consumes tick time: CPU clock speed, chunk loading, view and simulation distance, and entity count. This article walks through each factor and shows how to read a timings or spark report to find the real bottleneck instead of guessing.



What Really Drives Minecraft Server TPS

Minecraft server TPS (ticks per second) measures how many times per second the game logic — physics, redstone, mob AI, block updates — completes a full pass. The target is 20 TPS, meaning each tick has a 50ms budget. Anything that pushes a tick past 50ms causes the server to fall behind, and the game compensates by slowing down time perception for players: mobs move jerkily, hoppers lag, doors open late.

The Single-Thread Reality of the Tick Loop

Vanilla and Paper's main tick loop is fundamentally single-threaded. Chunk generation, some entity ticking and I/O can be offloaded to worker threads, but the core game logic — the part that decides whether you're at 20 TPS or 8 TPS — runs on one core. This is why adding more CPU cores to a machine rarely fixes a TPS problem on its own.

Why Clock Speed Beats Core Count

Because the tick loop is bottlenecked on a single thread, raw single-core frequency matters far more than the number of cores available. A CPU with high boost clocks per core, like a Ryzen chip, clears each tick faster than a CPU with more cores running at a lower frequency. If you're benchmarking hardware for a heavily modded world, look at single-thread performance figures, not total core count.

If your current node's single-core clock speed is the actual ceiling, no plugin optimization or garbage collection tuning will recover the lost headroom — at that point, moving to Minecraft server hosting running on faster Ryzen cores with NVMe storage is the practical fix, since disk I/O for chunk reads and world saves also rides on that same tick budget.



Chunk Loading, View Distance and Simulation Distance

Once CPU speed is ruled out, chunk-related settings are usually the next place TPS gets lost. Every loaded chunk has to be ticked, and every chunk within a player's render radius has to be kept loaded and sent over the network.

How Chunk Loading Actually Costs Tick Time

When a player crosses a chunk boundary, the world has to generate or load new chunks from disk, calculate lighting, and register block entities. On worlds with heavy exploration (rail networks, elytra flight, boat highways), this constant loading generates spikes that show up as short, sharp TPS drops rather than sustained lag.

View Distance vs Simulation Distance

These two settings in server.properties control very different costs:

SettingWhat it controlsMain TPS impact
view-distanceHow many chunks are sent to the client for renderingMostly network and client-side, moderate server load
simulation-distanceHow many chunks are actively ticked (mobs, crops, redstone, fluids)Direct and heavy tick-loop cost

Lowering simulation-distance from 10 to 6 on a survival world with a spread-out community almost always recovers more TPS than lowering view-distance, because it directly cuts the number of chunks the tick loop has to process every pass.

# server.properties
view-distance=8
simulation-distance=6

Practical Tuning Steps

  • Drop simulation-distance first, test for a full day-night cycle, then adjust.
  • Keep view-distance higher than simulation-distance for a smoother visual experience without extra tick cost.
  • On Paper-based servers, check paper-world-defaults.yml for per-world entity activation ranges before touching global settings.


Entity Count and Redstone: The Silent TPS Killers

Even with a fast CPU and conservative simulation-distance, an unchecked mob farm, an item duplication glitch, or a lag-heavy redstone contraption will drag Minecraft server TPS down regardless of other settings.

Where Entities Pile Up

  • Mob farms: automated grinders that don't kill fast enough accumulate hundreds of mobs.
  • Item stacking: uncollected drops from farms or explosions create long entity lists the tick loop has to iterate.
  • Villager breeders: unchecked villager population is one of the most common causes of a slow, gradual TPS decline.
  • Redstone clocks: constantly-firing clocks left running in unloaded or forgotten builds tick every cycle whether anyone is watching or not.

Mitigation Without Breaking Gameplay

Most Paper and Spigot builds expose per-entity limits and activation ranges that reduce cost without deleting player builds:

# paper-world-defaults.yml
entities:
  spawning:
    per-player-mob-spawns: true
  entity-per-chunk-save-limit:
    experience_orb: 20
    arrow: 20

Setting hard caps on specific entity types (arrows, experience orbs, item drops) is usually safer than a blanket mob cap, since it targets the entities most likely to be forgotten by players rather than active livestock or pets.



Reading Timings and Spark Reports to Find the Real Bottleneck

Guessing which of the above factors is responsible wastes time. A timings or spark report gives you the actual breakdown of where each tick's 50ms budget is going, which is the fastest way to confirm the real bottleneck behind low Minecraft server TPS.

Generating a Spark Report

Spark is the standard profiling plugin/mod for modern Paper, Forge and Fabric setups. From the console:

spark profiler start --timeout 120
# let it run through normal player activity
spark profiler stop

This produces a shareable report link showing exactly which plugins, mods or vanilla systems are consuming tick time, down to the method call.

What to Look for in the Report

  • High percentage under "Entity Tick": confirms an entity count problem, not a hardware limit.
  • High percentage under "Chunk Tick" or "Chunk Loading": points to view/simulation distance or a plugin generating chunks aggressively (border patrols, dynmap-style renderers).
  • Time spent in a single plugin's tick handler: isolate and test disabling that plugin temporarily.
  • Consistently high "Minecraft Server Tick" with no single outlier: often indicates the CPU's single-core ceiling has simply been reached.

Cross-Checking With Timings

On older Spigot forks, /timings report still works and produces a similar breakdown, though spark's live sampling tends to be more accurate under real load since it doesn't rely on the same aggregation window.

timings on
# reproduce the lag window
timings report

Cross-referencing both a spark report and your server.properties settings against the panel's live console lets you separate a configuration issue from a genuine hardware ceiling. If the panel shows CPU usage pegged at 100% on a single core during the lag window, that's your answer — no amount of plugin tuning changes it. For general reference on the vanilla settings involved, the official Source documents every property and its default value.

For servers managed through a control panel, checking live resource graphs alongside the console output — available through a Pterodactyl VPS setup or any panel-based environment — makes it much faster to correlate a TPS drop with a specific spike in CPU or memory usage rather than digging through raw logs. Browsing the full list of supported titles on All our game servers also helps if you're comparing tick-loop behavior across different game engines.



Conclusion

Low Minecraft server TPS almost always traces back to one of four causes: single-core CPU ceiling, aggressive chunk loading, oversized simulation distance, or uncontrolled entity growth. Running a spark report before changing any setting turns guesswork into a targeted fix, saving hours of trial-and-error tuning on a world your players are actively exploring.



FAQ

Why does Minecraft server TPS drop even with a powerful CPU?

Because the main tick loop runs on a single thread, a powerful multi-core CPU won't help if that one core is saturated by entity ticking, chunk loading, or a heavy plugin. Check single-core clock speed and run a spark report to confirm the actual bottleneck before assuming hardware is the issue.

What is a safe simulation distance for a survival world?

Most communities run comfortably between 4 and 6, keeping redstone and mob behavior consistent while noticeably reducing tick-loop load compared to the default of 10. Test one full day-night cycle after each change before deciding on a final value.

How do I read a spark or timings report to find lag?

Look at the percentage of tick time spent in categories like Entity Tick, Chunk Tick, and individual plugin tick handlers. A large share in one category points directly to the cause — entity overload, chunk loading, or a specific plugin — instead of guessing across your whole configuration.