What causes the fluctuation in the number of Virutal Users (VUs) throughout a BlazeMeter performance test?
Release : SAAS
Component : BLAZEMETER PERFORMANCE TESTING
There could be different reasons but most of the time the reason of the VUs drop is due to spikes in the CPU, meaning the machines are slowing down during the period of time where you see a drop in VUs.
In this situation, the CPU spike causes a delay in VUs performing the tasks which corresponds to drops in VUs. During the delay, the users are performing their tasks more slowly and not hitting the target site all at the same time. This is reflected in the Load and Response Time charts of the Summary report as well as in the chart on the Timeline report. The VUs are not lost but slowed down until the CPU recovers where the number of VUs increase again.
For these cases it would be necessary to make sure that the test is calibrated as outlined in the Calibrating a JMeter Test article.
In other situations, it could be an issue in the target application that is not able to cope with the load and produces delays or timeouts in the test. If the Engine Health report doesn't show any CPU/Memory issues then this is more likely the scenario.
In these cases, the target application logs should be checked for any evidence of timeouts or other issues that occur around the times there are drops in the VUs in the BlazeMeter reports. It is also highly recommended that the test be executed locally (as per the instructions in the Calibrating a JMeter Test article mentioned earlier) to determine if there is different behavior in the test compared to when the test is executed in Blazemeter. Another clue is the avg response time and/or throughput of the test. High response times and/or low throughput can also result in fluctuating VUs during the course of the test duration since it most likely means that VUs are slowed down waiting on responses.