Increase in CPU utilization


New Relic Servers is no longer available. For infrastructure monitoring, please use New Relic Infrastructure. For how to switch to Infrastructure from Servers, see the transition guide.


You see an increase in CPU utilization after you install Servers for Windows.


After you install Servers for Windows, the WMI provider process (WMIPrvSE.exe) will show an increase in CPU utilization. This increase is due to Servers for Windows querying WMI every 20 seconds for its metrics sampling cycle.

This is normal and expected behavior. The fewer resources a server has, the more pronounced the spike.

The following sections describe some calculations that contribute to the increase in CPU utilization. These examples as well as the actual transmission of data are representative and not the sole cause for the increase in CPU utilization.

Overall CPU utilization

The Server monitor agent obtains data for CPU utilization every 20 seconds using WMI to gather the system statistics. The WMI query used via managementobjectsearcher is:

 SELECT PercentPrivilegedTime,PercentUserTime,TimeStamp_Sys100NS FROM Win32_PerfRawData_PerfOS_Processor WHERE Name = '_Total' 

Note: All the values returned are ticks (100ns periods), not percentages as implied by the query names.

For each 20 second period, the agent calculates percent usage, %CPUx for each CPU for both System and User time using PercentPrivilegedTime (System), PercentUserTime (User), and the TimeStamp according to this formula:

 %CPUx = ((currentCPUTicks - previousCPUTicks) / (currentTimestamp - previousTimestamp)) * 100 

It then uses the average System and User CPU utilization for the time period to calculate the average % CPU usage using this formula:

% CPU usage = ( %CPU1 + %CPU2 + %CPU3 + ... + %CPUN ) /  N  

Every minute the agent averages the % CPU usage data for the three previous 20 second periods, for both the System and User CPU, and sends it to New Relic.

It is possible that a few short term spikes on one CPU or during a few data harvest periods can lead to the average being higher than Windows or version WSM 2.x reported.

Process CPU utilization

The Server monitor agent obtains data for Process CPU utilization every 20 seconds using the GetProcessById method to retrieve the elapsed CPU Ticks for each process and the DateTime.UtcNow.Ticks method for the elapsed ticks (100ns periods) for the CPU.

Every 20 seconds the agent calculates the percentage of time used by each process using this formula:

% Usage = ((currentProcessTicks - previousProcessTicks) / (currentTotalCPUTicks - previousTotalCPUTicks)) *100 

At the end of each minute, the agent averages the % Usage for each process for the three previous 20-second periods and sends it to New Relic.

For more help

Additional documentation resources include Processes page (details about processes by memory or CPU usage, including the top five CPU consumers for the server).

New Relic Servers is unavailable as of May 15, 2018. For more information: