How to Use Spark Profiler on Minecraft Server
Use Spark profiler on a Minecraft server to capture TPS lag, read MSPT clues, avoid idle profiles, and turn profiler reports into focused fixes.
Spark is a profiler for Minecraft servers, proxies, and clients. For server owners, its biggest value is showing where tick time goes while lag is actually happening.
Modern Paper versions bundle Spark, and Paper's own profiling docs recommend profiling while the issue is active. On other platforms, install the Spark plugin or mod that matches your server software.
Basic Capture
On a Paper server with Spark available, run:
/spark profiler start --timeout 600
That records for 10 minutes and returns a report link when it finishes. If you need a shorter manual capture:
/spark profiler start
Then stop it after the lag window:
/spark profiler stop
If the server lags at 25 players and you profile at 3 players, the report may look clean while the real problem remains.
What to Record With the Report
Save context beside the Spark link:
| Context | Example | | --- | --- | | Player count | 22 online | | Worlds active | survival, nether, resource | | Main symptom | block delay and mob freezes | | Hot locations | villager hall, gold farm, new chunks | | Recent changes | added quests plugin yesterday |
This prevents the report from becoming a mysterious link with no story.
Reading the First Clues
Start with MSPT and the hottest paths. You are looking for patterns:
- Entity ticking points toward mobs, villagers, item piles, or farms.
- Chunk tasks point toward exploration, generation, IO, or forced chunks.
- Plugin scheduler work points toward repeating plugin tasks.
- Command execution points toward command blocks, datapacks, or scripted automation.
- Garbage collection points toward memory pressure or heap sizing.
Use the report to choose the next guide. Entity-heavy profiles fit entity lag explained. Chunk-heavy profiles fit chunk lag explained. Plugin-heavy profiles fit how to find laggy plugins.
After the Profile
Do not change five things at once. Pick the largest believable cause, make one controlled change, and profile again during the same workload.
Good next actions include:
- Reconfiguring one noisy plugin.
- Moving a farm out of spawn chunks.
- Reducing simulation distance slightly.
- Pregenerating a world border.
- Limiting hopper or villager hotspots with player communication.
Spark is evidence, not a magic verdict. The best admin work is turning that evidence into a small reversible change.
FAQ
When should I run Spark?
Run Spark while the performance issue is happening. An idle profile rarely explains peak-hour lag.
Does Spark fix lag automatically?
No. Spark records evidence. You still need to interpret the report and change the right plugin, setting, world, or hardware bottleneck.
Is Spark only for Paper?
No. Spark supports multiple Minecraft server platforms. Modern Paper bundles Spark, while other servers may need the plugin or mod installed.
Related Tools
Startup Log Classifier
Paste a Minecraft startup log excerpt to classify Java mismatch, port conflicts, memory errors, plugin failures, dependency issues, and TPS overload.
Plugin Conflict Auditor
Paste a Minecraft plugin list to flag common dependency, compatibility, ProtocolLib, LuckPerms, ViaVersion, and proxy risk areas.
Minecraft JVM Flag Generator
Generate practical Minecraft server JVM flags for Paper, Purpur, Forge, Fabric, and Velocity with sensible heap sizing and GC reminders.
Related Articles
Minecraft TPS Explained
Learn what Minecraft TPS means, how MSPT affects it, why 20 TPS matters, and how to diagnose server lag without confusing it with FPS.
How to Read Minecraft Timings Report
Learn how to read Minecraft timings reports, identify expensive plugins and tick sections, avoid common mistakes, and decide when to use Spark instead.
Minecraft Server Performance Audit Guide
Run a Minecraft server performance audit covering TPS, MSPT, Spark profiles, plugins, entities, chunks, configs, JVM flags, backups, and capacity limits.