Introduction

The Diagnostic Policy Service in Windows 11 is responsible for collecting system performance data and troubleshooting information. However, users often report this service causing unexpectedly high CPU usage—sometimes spiking up to 25% even at idle. This guide walks through a proven solution shared by the community to resolve this issue permanently.


The Problem:

  • Symptoms:
    • The service svchost.exe (Diagnostic Policy Service) uses 10–25% CPU at idle.
    • Rebooting temporarily reduces CPU usage, but it spikes again afterward.
    • Tried fixes like reinstalling updates or deleting SRUDB.dat but saw no lasting results.

The Solution:

User impractical4 shared a step-by-step approach that worked for many users. Here’s how to implement it:

Step 1: Disable and Re-enable the Diagnostic Policy Service

  1. Open Services: Press Win + R, type services.msc, and hit Enter.
  2. Find the Service: Locate Diagnostic Policy Service.
  3. Disable It:
    • Right-click the service → Properties → Set Startup Type to Disabled.
    • Click Stop (if running) → OK.
  4. Restart Your PC.

Step 2: Delete the Corrupted Database (SRUDB.dat)

  1. After reboot, press Win + R and type %windir%\System32\sru. This opens the folder containing the System Resource Usage database.
  2. Delete SRUDB.dat:
    • Right-click the file → Delete.
    • If denied permission, end the Diagnostic Data Service (via Task Manager) first.

Step 3: Re-enable the Service

  1. Reopen services.msc.
  2. Set Startup Type to Automatic:
    • For Diagnostic Policy Service, right-click → Properties → Set Startup Type to Automatic.
    • Click Start to launch the service → OK.
  3. Restart Your PC Again.

Why This Works:

The Diagnostic Policy Service relies on the SRUDB.dat file to store system usage data. Over time, this file can become corrupted, causing the service to run indefinitely to “repair” itself—resulting in high CPU usage. By:

  1. Temporarily disabling the service,
  2. Deleting the corrupted database, and
  3. Re-enabling the service,

you force Windows to regenerate a clean database. This method not only reduces CPU spikes but can also lower system temperatures (as noted by users) by eliminating unnecessary processing.


Additional Tips:

  • Check Event Viewer: If the issue persists, review Event Viewer logs for errors related to the service or SRUDB.dat.
  • Run System File Checker (SFC): Use commands like sfc /scannow or DISM if other system files are corrupted.

Conclusion

This solution has been tested and verified by multiple users in the Windows community. While the Diagnostic Policy Service is essential for troubleshooting, its high CPU usage can often be traced back to a corrupted database. By following these steps, you can restore normal CPU usage and improve system performance without compromising functionality.