Skip to Content
Running a ServerSpark Analyzer

The Spark Analyzer  reads a spark profile and turns it into a list of problems and fixes. It is free and works for any server, not just ones hosted with us.

How to use it

  1. While the lag is happening, run /spark profiler start --timeout 300 in your console.
  2. Wait the 5 minutes. Spark prints a link when it stops.
  3. Paste that link into the Spark Analyzer  and press Analyze. You can also drop a .sparkprofile file you exported from the spark viewer (up to 200 MB).

Two other kinds of profile help with specific problems:

  • Ping spikes, or a fork that ticks worlds on separate threads (Leaf and similar). Use /spark profiler start --thread * --timeout 300 so the network (Netty) and world threads are included.
  • Lag spikes from garbage collection. Use /spark profiler start --alloc --timeout 300. This records what creates garbage instead of what uses time.

The profile is read in your browser and is not uploaded to ATBP Hosting. The page only reads spark’s own data format: other files are refused, files over 200 MB are refused, and a profile that takes longer than 60 seconds to read is stopped. Nothing in a profile is ever run or shown as a link.

What it checks

  • TPS and tick time (MSPT). Whether the server keeps up with 20 ticks per second, how often ticks go over 50 ms, which minutes were the worst, and what grew during those minutes.
  • Where tick time goes. Entities, block entities (hoppers, furnaces, spawners), chunk loading, mob spawning, redstone, random ticks, player packets, plugin events and scheduler tasks, world saving and garbage collection.
  • Known hotspots. Dropped items, XP orbs, villagers, pathfinding, collisions, hoppers, pistons, explosions, armor stands, minecarts, map items and more. Each one comes with the settings that reduce it and the value your server uses now.
  • Plugins. How much main thread time each plugin uses and from which part of the plugin, plugins doing file, database or network work on the main thread, plugins that are not needed on Paper or Purpur, and plugins that do the same job twice (for example two anticheats).
  • Waiting. Time the main thread spent waiting on locks, futures or chunk loads during a tick, and which plugin caused it.
  • Java and memory. Java version for your Minecraft version, heap size, garbage collector, Aikar’s flags , GC pause length and frequency, full GCs and how full the heap stays after a collection.
  • Ping and network threads. Player ping and whether it spikes. With --thread *, how busy each network thread is and what it spends time on: compressing, encrypting or encoding packets, or plugins that listen to packets (ProtocolLib, packetevents, ViaVersion and similar). A network thread near 100% busy delays packets for the players on it.
  • Garbage (allocation profiles). How much garbage the server creates per second, which plugins and which code create it, and how that lines up with GC pauses.
  • Server settings. server.properties, bukkit.yml, spigot.yml, Paper, Purpur and Pufferfish settings, including per-world overrides. Suggestions are shown only when your current value is on the costly side, and settings that change gameplay are marked.
  • World. Entity counts, the busiest chunks with block coordinates you can teleport to, game rules such as randomTickSpeed and maxEntityCramming, and datapacks.
  • Version. Old Minecraft versions, Spigot or CraftBukkit instead of Paper, and abandoned forks.

Reading the results

Results are split into four tabs:

  • Summary. One sentence on how your server is doing, its TPS, tick time and load, and the three changes that help most.
  • Fixes. Every change to make, one per line and grouped by file, such as “Turn on hopper.disable-move-event” or “Lower spawn-limits.monsters from 70 to 20”. Lines marked players notice change gameplay a little; skip them if you prefer. Tap ? on a line to see why it is suggested.
  • What’s lagging. Where each tick’s time goes, the plugins and entities that use the most, the network threads (with --thread *), what creates garbage (with --alloc), and the detailed findings.
  • Server info. Java version, memory, CPU, garbage collection and startup flags.

The Copy as text button copies the whole report so you can paste it into a Discord  ticket.

To change the settings it suggests, see Server Optimization and Mob Spawn Limits. For help with a profile, open a ticket in our Discord  with the spark link.

Last updated on