20 TPS is the holy grail of Minecraft server performance. It means the server is processing every game tick on time, and players experience zero lag. On modded servers, maintaining 20 TPS is a constant battle.
Measuring TPS
Spark Profiler
Spark is the definitive performance analysis tool for Minecraft:
/spark tps
This shows your current, 5-minute, and 15-minute average TPS. Anything below 18 means players notice lag.
/spark profiler start --timeout 300
Run a 5-minute profile to see exactly what's consuming your tick time. The report breaks down CPU usage by category:
- Entity ticking: Mob AI, pathfinding, collision
- Block entity ticking: Furnaces, hoppers, mod machines
- Chunk loading: New chunk generation
- Plugin/mod processing: Per-tick calculations
MSPT (Milliseconds Per Tick)
TPS tells you the result. MSPT tells you the margin.
/spark tickmonitor
At 20 TPS, each tick has 50ms to complete. If your average MSPT is 45ms, you're running at 20 TPS but have only 5ms of headroom. One lag spike drops you below 20.
| MSPT | TPS | Status | |------|-----|--------| | < 30ms | 20 | Healthy, good headroom | | 30-45ms | 20 | Okay but watch closely | | 45-50ms | 19-20 | Borderline, optimization needed | | 50-70ms | 14-19 | Noticeable lag | | 70ms+ | < 14 | Players leaving |
Common Modded Bottlenecks
Entity Count
Every loaded entity uses CPU time. Modded servers accumulate entities fast:
- Item drops from mod machines
- Custom mobs from mob-adding mods
- Vehicles, projectiles, particles
Use /spark profiler and look for entity-related entries. If entities consume more than 30% of tick time, you need cleanup.
Solutions: Lower mob spawn rates, add entity clear plugins, reduce item entity lifespan.
Tile Entity Processing
Modded machines (Create contraptions, Mekanism machines, Applied Energistics systems) are tile entities. They tick independently and can consume massive CPU time.
A single AE2 autocrafting system with 200+ pattern providers can use 5-10ms per tick. Multiply by several players' automation setups and it adds up fast.
Solutions: Limit the number of parallel crafting operations, use mod configs to reduce processing frequency.
World Tick
The world itself ticks: random block updates, growth, weather, light updates. On modded servers with custom biomes and blocks, this can be heavier than vanilla.
Solutions: Reduce random tick speed (randomTickSpeed), limit simulation distance.
Hardware Impact
We benchmarked the same modded server (100 mods, 15 players) on different CPUs:
| CPU | Average MSPT | 90th Percentile | Sustained TPS | |-----|-------------|------------------|---------------| | Xeon E-2388G | 52ms | 78ms | 16.8 | | Ryzen 7 5800X | 38ms | 55ms | 19.2 | | Ryzen 9 7950X3D | 28ms | 42ms | 20.0 |
The 7950X3D's combination of clock speed and cache size gives it a 40% advantage over budget server CPUs. That margin is the difference between 17 and 20 TPS.
Space-Node's plans use the 7950X3D exclusively, giving you the best possible starting point before any optimization.
The 80/20 Rule of TPS
In practice, 80% of your TPS problems come from 20% of your server's activity. The Spark profiler identifies that 20% quickly. Usually it's one player's redstone farm, one mod's entity spawning, or one misconfigured plugin.
Find the biggest offender, fix it, and suddenly you're back at 20 TPS. Repeat as needed. Perfect performance is an ongoing process, not a one-time setup.
