Performance
MSPT (Milliseconds Per Tick)
Understanding MSPT and how each server tick time affects performance.
MSPT (Milliseconds Per Tick) measures how long the server takes to process each tick. While TPS tells you that the server is lagging, MSPT tells you how much lag there is.
MSPT and TPS
The relationship between MSPT and TPS:
- MSPT ≤ 50ms: 20 TPS (optimal)
- MSPT 50-55ms: ~18-20 TPS (slight lag)
- MSPT 55-65ms: ~15-18 TPS (noticeable lag)
- MSPT > 65ms: < 15 TPS (significant lag)
How MSPT Works
The server has a 50ms window for each tick. If processing takes longer than 50ms:
- The tick spills over into the next tick time slot
- The server skips ticks to catch up
- Players experience lag; blocks do not break, entities stutter
Checking MSPT
Paper/Purpur
Use Spark profiler: /spark profiler --timeout 60
Viewing Results
After profiling, Spark provides a detailed breakdown of what consumed tick time:
- Game logic
- Entity processing
- Plugin execution
- Chunk operations
Reducing MSPT
- Optimize your server configuration
- Reduce or replace heavy plugins
- Lower entity activation range in config
- Use Aikar JVM flags