The Engine Health report displays performance indicators received from the test engines (the infrastructure delivering the test traffic, not your system under test).
The Engine Health report indicates whether the test infrastructure itself could be the cause of bottlenecks or the errors which are appearing in other reports. Engine Health is also a great resource when deciding how many virtual users (VUs) each engine can support. The ideal ratio depends on the complexity and memory footprint of your script(s). You can read about the process for planning and calibration of test execution to optimally utilize available resources in the help topic, Calibrating a BlazeMeter test.
When running performance tests, it is important to monitor the resource utilization. If one or more engines show high resource utilization, it could impact the test results.
The Engine Health report lets you view the following KPIs:
Represents the Percentage usage of CPU in instance
Represents the Percentage usage of the Virtual Memory in instance
- Network I/O
Represents the amount of data transferred in I/O operations (KB/s)
Represents the number of persistent connections established for each transaction throughout the test
View Engine Health Report
Follow these steps:
In the Performance tab, select Reports. The most recent reports are shown on top.
Click Show all reports and select a report to view its details.
A test report overview opens.
Click the Engine Health tab.
A curve diagram appears, showing the level of resource utilization over the course of the associated tests:
To show/hide a KPI in the diagram, click the associated KPI label. For example, to hide Network I/O, click the Network I/O label in the X-axis.
Caution: The accuracy of engine health metrics in private locations may be limited because of restricted access, network conditions, infrastructure changes, and security considerations inherent in private environments.
CPU and Memory Levels
When conducting performance tests, it is recommended to maintain average CPU and memory usage below 70%. The thresholds for engine instances are set at 80% for CPU and 85% for memory. These averages are calculated using a 60-second moving average of the data points collected throughout the test duration.
To illustrate, let's consider a specific 60-second period within a test run, ranging from 1 minute and 20 seconds to 2 minutes and 20 seconds. In this interval, a total of 30 measurements are taken at 2-second intervals, divided into three sets of 10 consecutive measurements each. The first set averages 50%, the second 70%, and the third 90%. As a result, the 60-second moving average for this period amounts to 70%.
If the average of the 60-second moving averages recorded throughout the entire test duration surpasses the threshold set for a particular resource type (CPU or Memory), an on-screen alert will be displayed.
Troubleshooting High Levels of CPU and Memory
Ensure the following:
- Ensure that your script is resource effective, with no enabled listeners, redundant requests, or heavy samplers like WebDriver sampler that can be avoided.
- Reduce the number of users per engine.
- Add more engines to the test.