Finding the plugin that is eating your CPU

Performance & Lag Reviewed September 6, 2026 1 min read

A profiler names the plugin most of the time. When it does not — because the cost is spread out, or the plugin hides behind Minecraft's own code — bisection finds it in about four restarts.

Why it happens

Some plugins cost time in ways a profiler attributes to the server rather than to them: scheduled tasks, event listeners that fire constantly, or database calls made on the main thread. Removing half at a time isolates them regardless.

What to do

  1. Profile first

    /spark profiler start, wait through the lag, /spark profiler stop. If a plugin name is at the top, you are done — skip the rest of this.

  2. Move half the plugins out

    Create a folder next to plugins and move half of them into it. Restart and watch TPS with a similar player count.

  3. Follow the half that lags

    If the lag is gone, the culprit is in the folder you moved. If it is still there, it is in the half you kept. Split that half again.

  4. Repeat until one plugin is left

    Forty plugins take about five rounds. Each round halves the search.

How to confirm it worked

With the suspect plugin removed and everything else restored, TPS stays healthy under the same conditions that used to drop it.

Worth knowing

Before removing it for good, check whether an update exists. Plugin performance bugs are common and often fixed in the next release.