Guessing at performance problems wastes time. Spark profiler gives you hard data about exactly what your server spends its time on - and where the bottlenecks actually are.
What Is Spark?
Spark is a performance profiler and monitoring tool for Minecraft servers. It tracks CPU usage, memory allocation, garbage collection, and per-tick breakdown in real time. Available for Paper, Fabric, Forge, and BungeeCord/Velocity.
Install it from spark.lucko.me - drop the JAR in your plugins/mods folder, restart, done.
Basic Profiling
To find what's causing TPS drops:
/spark profiler start
Let it run for 3-5 minutes during normal gameplay with players online. Then:
/spark profiler stop
Spark generates a shareable link with an interactive flamegraph showing exactly where tick time goes.
Reading the Flamegraph
The flamegraph looks complex at first, but it's intuitive once you understand the layout:
- Width = time spent. Wider bars mean more time consumed.
- Vertical stacking = call hierarchy. What called what.
- Colors = different systems. Green typically means Minecraft internals, blue is plugins.
Look for the widest bars. Those are your biggest time consumers. Common findings:
Entity Ticking Takes Most Time
If entityTick or tickEntities dominates, you have too many entities. Check:
- Mob farms without entity limits
- Item entities on the ground
- Villager trading halls
- Armor stands from holograms plugin
Chunk Loading Is Expensive
If chunk-related methods dominate, players are exploring faster than the server can generate. Solutions:
- Pre-generate with Chunky
- Reduce view distance
- Check if chunk loading plugins are forcing loads
A Specific Plugin Is Slow
If a plugin's package name appears as a wide bar, that plugin is consuming disproportionate tick time. Contact the plugin developer, check for updates, or consider alternatives.
Memory Monitoring
Check memory pressure with:
/spark heapsummary
This shows what's filling your heap:
- Chunk data (usually 40-60% of heap)
- Entity data
- Plugin data structures
- Block entity data (chests, hoppers, signs)
If heap usage consistently exceeds 85% of your allocation, you need more RAM or need to optimize what's stored.
GC Monitoring
/spark gc
Shows garbage collection frequency and pause times. Healthy servers see:
- Young gen GC: every 5-15 seconds, <10ms pause
- Old gen GC: rarely (minutes apart), <100ms pause
If old gen GC is frequent (every 30 seconds) and pauses exceed 200ms, your heap is too small or you have a memory leak.
TPS Over Time
/spark tps
Shows average TPS, 1% low, and worst TPS over the last 5/10/15 minutes. The 1% low is most meaningful - if your average is 19.8 but 1% low is 16.0, you have periodic lag spikes worth investigating.
Automated Health Reports
/spark healthreport
Generates a comprehensive snapshot of current server health: CPU usage, TPS, memory, GC stats, and network I/O. Share this with your hosting provider if you need support - it gives them everything they need to diagnose issues.
Spark is the single most valuable tool for any Minecraft server administrator. Install it on day one and check it whenever players report lag - the data will tell you exactly what to fix.
All Space-Node Minecraft plans support Spark out of the box. Our support team can also help interpret Spark reports if you're unsure what the data means.
