Spark is a performance profiling plugin/mod which provides you with a variety of tools which help when diagnosing performance and memory issues.
While Spark is simple to install it has a lot of options, commands, and information that can feel a bit overwhelming to users. If you need help at any time, please don't hesitate to contact our 24/7 support team or check out the Spark documentation available here.
Installing Spark
To install Spark, you will need to download its jar file, and then upload it to your relevant mods or plugins folder.
- Download Spark from CurseForge or download the Spigot version here.
- Navigate to your control panel and Stop your server.
- Access your server files via FTP, we recommend using FileZilla.
- Navigate to the
/mods
directory. - Upload the spark.jar file.
- Start your server.
Generating and Accessing a Profiler Report
Although there are a variety of utility commands provided by Spark, we will only cover the CPU profiler tool. We highly recommend you refer to the Spark documentation if you'd like to learn more detail about the CPU profiler tool or the other tools Spark provides.
Running the Spark profiler will generate a link that will direct you to your server's Spark report. This link can be sent to Shockbyte Support to help our staff diagnose the cause of lag, however, it can be insightful to more advanced users as well.
- Connect to your server and ensure you are an op or have the permission node
spark.profiler
. - After installing Spark and allowing your server to run for 10 minutes or more, type the command
/Spark Profiler --Stop
. - Click the link provided after your Spark report generates.
Analysing the Profiler
After opening your profiler report, you can click the Server thread dropdown menu to expand the server's threads. According to the Spark Documentation, "Threads (at the top of the profile) will always show 100% next to them; this is because 100% of the time spent profiling the thread was, well, spent within that thread."
Call threads (or each item in the dropdown menu) may be a little confusing, especially if you're new to Java programming or Minecraft server internals. You can find a list of notable call frames to be aware of on the Spark Documentation here.
- Click the Call thread called Server thread to expand the menu
- Click the next Call thread which had taken the most percentage of time to complete to continue expanding the tree
- Continue this process until you have found a Call thread which gives you enough information to continue troubleshooting
- In this example, we can determine that our server lag is caused by an excessive amount of entities. Now we can focus on troubleshooting entity lag thanks to Spark.
To learn more about Spark and how to use it, we highly recommend reading the Spark Using the Viewer documentation.
If you require any further assistance, please contact our support at: https://shockbyte.com/billing/submitticket.php