Finding the load average calculated by a Java Agent on a Windows server requires the following data:
ProcessorQueueLength counts how many threads are ready in the processor queue, but not currently able to use the processor.
To find this value, launch PowerShell and run the following command:
Get-WmiObject -Query "Select * from Win32_PerfRawData_PerfOS_System" | findstr ProcessorQueueLength
The value of mathematical constant e= 2.718281828459045.
Load average intervals are:
1 minute (60 sec)
5 minutes (300 sec)
15 minutes (900 sec)
"Sample frequency" is the frequency with which the samples are collected for each interval.
Example: In 1 minute, 2 samples were collected. In 5 minutes, 10 samples were collected. Sample frequency is 30 seconds (default).
This can be set in the <machine_agent_home>/extensions/ServerMonitoring/conf/ServerMonitoring.yml file by changing the "sampling interval" property.
Load average is set at 0 before computing. Then, for each sample collected at the sampling frequency, the load average is calculated as an exponentially-damped moving average. The data points are added into the load average results for each sample.
exp = e power -(sampleFrequency/interval)
loadAverage = loadAverage * exp
loadAverage = loadAverage + ProcessorQueueLength*(1-exp)