spark 1.5.2

Compatible API Versions

spark is a performance profiling plugin/mod for Minecraft clients, servers and proxies.
Useful Links
What does it do?
spark is made up of a number of components, each detailed separately below.
  • CPU Profiler: Diagnose performance issues.
  • Memory Inspection: Diagnose memory issues.
  • Server Health Reporting: Keep track of overall server health.

⚡ CPU Profiler
spark's profiler can be used to diagnose performance issues: "lag", low tick rate, high CPU usage, etc.

It is:
  • Lightweight - can be ran in production with minimal impact.
  • Easy to use - no configuration or setup necessary, just install the plugin/mod.
  • Quick to produce results - running for just ~30 seconds is enough to produce useful insights into problematic areas for performance.
  • Customisable - can be tuned to target specific threads, sample at a specific interval, record only "laggy" periods, etc
  • Highly readable - simple tree structure lends itself to easy analysis and interpretation. The viewer can also apply deobfuscation mappings.
It works by sampling statistical data about the systems activity, and constructing a call graph based on this data. The call graph is then displayed in an online viewer for further analysis by the user.

There are two different profiler engines:
  • Native AsyncGetCallTrace + perf_events - uses async-profiler (only available on Linux x86_64 systems)
  • Built-in Java ThreadMXBean - an improved version of the popular WarmRoast profiler by sk89q.

⚡ Memory Inspection
spark includes a number of tools which are useful for diagnosing memory issues with a server.
  • Heap Summary- take & analyse a basic snapshot of the servers memory
    • A simple view of the JVM's heap, see memory usage and instance counts for each class
    • Not intended to be a full replacement of proper memory analysis tools. (see below)
  • Heap Dump- take a full (HPROF) snapshot of the servers memory
    • Dumps (& optionally compresses) a full snapshot of JVM's heap.
    • This snapshot can then be inspected using conventional analysis tools.
  • GC Monitoring- monitor garbage collection activity on the server
    • Allows the user to relate GC activity to game server hangs, and easily see how long they are taking & how much memory is being free'd.
    • Observe frequency/duration of young/old generation garbage collections to inform which GC tuning flags to use
⚡ Server Health Reporting
spark can report a number of metrics summarising the servers overall health.

These metrics include:
  • TPS - ticks per second, to a more accurate degree indicated by the /tps command
  • Tick Durations - how long each tick is taking (min, max and average)
  • CPU Usage - how much of the CPU is being used by the server process, and by the overall system
  • Memory Usage - how much memory is being used by the process
  • Disk Usage - how much disk space is free/being used by the system
As well as providing tick rate averages, spark can also monitor individual ticks - sending a report whenever a single tick's duration exceeds a certain threshold. This can be used to identify trends and the nature of performance issues, relative to other system or game events.

To install, just add the spark-nukkit.jar file to your servers plugins directory.

Information about how to use commands can be found in the docs.

If you’d like help analysing a profiling report, or just want to chat, feel free to join us on Discord.

There are a few small "guides" available in the docs, covering the following topics.
First release
Last update
5.00 star(s) 2 ratings

More resources from Luck

  • LuckPerms
    A permissions plugin for Minecraft servers.

Latest updates

  1. 1.5.2

    Hello everyone, update time! If you like spark, please consider leaving a review or giving it a...

Latest reviews

Very good plugin and very helpful to search my plugins lag
Very good plugin and very helpful to use in my server