In this article, learn how to fix Service Host: Diagnostic Policy Service high CPU usage problem for your Windows 10/8.1/8.

Diagnostic Policy Service is there in Windows OS to detect, troubleshoot and resolve issues with Windows Components. When this service is disabled, diagnostics will no longer be functioning. Since this is a background service and is needful for Windows, it is automatically started when you start your system and keeps running.

But sometimes you may notice high CPU usage with Diagnostic Policy Service. This is not desirable for a background service. High CPU usage from a single process makes the system slower to respond other processes and you face lagging problem. Checkout the below shown screenshot which shows high CPU usage from Diagnostic Policy Service.

FIX Service Host Diagnostic Policy Service High CPU Usage In Windows 10

If you’re also victim of this problem, this article is for you. Try below mentioned suggestions and see if they helps you to fix it:

FIX: Service Host: Diagnostic Policy Service High CPU Usage In Windows 10

FIX 1 – General Suggestions

1. First of all, try ending the task process and let it restart itself. See if high CPU usage occurs from the process now. If this continues, reboot the machine.

2. Run the System File Checker scan or run DISM commands to repair inbox corruption.

3. Try creating new user account and check if the problem persists on that.

4. Make sure you install latest Windows Updates.

5. Run System Performance troubleshooter.

6. Update your machine’s BIOS firmware to latest version.

7. Make sure you’ve latest drivers installed on the system.

FIX 2 – Via File Explorer

1. Press W8K + R and type following in Run dialog box, press Enter key:

%WinDir%\System32\sru

FIX Service Host Diagnostic Policy Service High CPU Usage In Windows 10

2. In the sru folder so open, locate the SRUDB.dat file and delete it.

FIX Service Host Diagnostic Policy Service High CPU Usage In Windows 10

Close File Explorer and restart your system.

FYI: If you’re unable to delete SRUDB.dat file due to file being used by Diagnostic Policy Service, you need to first set the Diagnostic Policy Service policy startup type as Disabled. Then you can easily delete the file. You can also delete the file from recovery mode Command Prompt.

Hope this helps!

Share this post on Facebook · Twitter.

14 Comments

  • I made a batch file which stoppes the service and prompts the user to delete the folder. Then the service is startet again. Just create a text file and insert following code. Then save as .bat file. You need to start the bat as admin though.

    nofile.io/f/w2cdg4n8TSZ/fixDPSservice.bat

  • Kapil Arya

    ^^ Thanks for your inputs, much appreciated 😎

  • So far the problem is gone and the folder even is not created anymore :)

  • Kapil Arya

    ^^ 😊

  • I cant deleat SRUDB.dat file why?

  • i set startup to disabled and i go to delete Srudb.data but dosent work?

  • Kapil Arya

    ^^ Try deleting the file from recovery mode Command Prompt.

  • Mine isn’t that high in cpu but it takes up 2gb of ram, though all still try this

  • Is it safe to download the file at nofile.io/f/w2cdg4n8TSZ/fixDPSservice.bat? Or should I just create a new text file in the sru folder and insert the text mentioned on the comments in microsoft? (Its basically the same convo between You and Girofox. I just wasnt sure what I should be doing. Create new txt file and inserting; @echo off
    echo … Set DPS service start type to manual …
    echo.
    sc config DPS start= demand

    echo.
    echo … Find PID of DPS service …

    for /f “tokens=2 delims=[:]” %%f in (‘sc queryex dps ^|find /i “PID”‘) do set PID=%%f

    echo.
    echo … Kill DPS service
    echo.

    taskkill /f /pid %PID%

    echo.
    echo … Delete sru Folder …
    echo.

    rd /s “%windir%\system32\sru”

    echo.
    echo … Set DPS service start type to auto …
    echo.
    sc config DPS start= auto

    echo.
    echo … Start DPS service …

    sc start DPS
    echo.

    pause

    Then I, what, save this as a .BAT file and run as administrator? What do I save the filename as once is it .BAT? Is it a better Idea to just download the file at the given link and install that there instead??? Is any of this even neccesary to stop the Service Host from draining too much?? or should I just delete the SRUDB.dat file??

  • Kapil Arya

    ^^ TBH, I haven’t personally tried Girofox’s file, so I can’t comment about it. Using it will be your own desicion. Try the instructions mentioned in the post first.

  • Thanks this worked for me. I can’t believe what a tortured and twisted hot mess Windows has become.

  • Kapil Arya

    ^^ Glad it helped you 😊

  • Hi, there. I just wonder what’s behind the issue. I’m using a clean install of latest 1903 x64 build of Windows 10. DPS service continues with high CPU usage and if I just stop it then delete that file and start it, DPS service is still eating the CPU usage.

  • I ran CMD as administorator and deleted the .log files in “%WinDir%\System32\sru”
    That worked for me Thanks

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    Recent Comments

    • cooper : I changed my account name thank you...

      18 hours ago

    • M Arunaa Devi : Thank you. It's very very helpful...

      19 hours ago

    • Jill : After applying December 2019 Windows 10 security patch (for version 18...

      1 day ago