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.

Checkout this video to illustrate this fix:

Hope this helps!

Also check: Windows Audio Device Graph Isolation High CPU Usage.

41 Comments

Add your comment

  • Girofox

    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 ๐Ÿ˜Ž

  • Girofox

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

  • Kapil Arya

    ^^ ๐Ÿ˜Š

  • Paolo

    I cant deleat SRUDB.dat file why?

  • Paolo

    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.

  • K

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

  • Justin Coup

    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.

  • WasAWindowsUser

    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 ๐Ÿ˜Š

  • windows.newbie

    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.

  • Jon B

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

  • Masoleh

    hi, i deleted SRUDB.dat and work,
    but if I restart my laptop, that file come again and make my CPU high :(
    any solution?

  • Andrew

    The second way works, thanks)

  • Kapil Arya

    ^^ Glad to help Andrew!

  • Darren

    Thanks Fix 2 sorted it for me. Updating Windows delayed it for a few minutes but it came back again.

  • Dimas Fernandes Silva

    I did as you instructed, but the problem returned over and over. Then, as I had a 100% disk use in task manager very often, for a long time, looked for a solution, and found: (here I may make some translation mistake since my windows is in Brazilian Portuguese):
    In Windows Settings / System go to Notifications and Actions, then disable Show welcome experience after updates …. and Obtain clues, suggestions (something like it).
    Did it, and that Service Host did not go to high cpu usage anymore, and no more disk usage got stuck in 100%. It can go to 100%, but is a matter of seconds.

  • Kapil Arya

    ^^ Thanks for adding this!

  • Rodrigo Rodrigues

    Anything here worked for me, not even after deleting the entire sru folder. This problem only happens to me after I turn the computer on for the first time in a couple of hours. The issue also resolves itself after I restar windows. But this forces me to restart windows everytime I turn on my computer for the first time in just a couple of hours. Any suggestions?

  • Kapil Arya

    ^^ Suggest you to upgrade to latest Windows 10 version, see if issue still persists.

  • Tas

    Didn’t work.Should I disable diagonostic policy service parmanently?

  • Kapil Arya

    ^^ It is upto you. Note that troubleshooters may not work after this.

  • Ronan Harris

    What if there is no SRU folder inside System32 ? I found another SRU under SysWow64 but there is nothing inside, I guess I’d just disable DPS for now as I cant find any file to delete (I turned on the “show all hidden files” including the OS protected ones, and use dir to check if its really empty).

  • Kapil Arya

    ^^ Please try other suggestions in FIX 1.

  • JoeBeach

    I could not get it stopped and so could not delete SRUDB. I just used End Process in task manager and that stopped it and then I deleted the file.

  • Kapil Arya

    ^^ Hope the issue is resolved for you!

  • Alkarim

    Thank you for your article Kapil, it was very helpful in resolving my issue.

  • Kapil Arya

    ^^ Glad to help Alkarim!

  • Corey

    So I’ve tried every suggestions here, and it still just keeps popping back up at high cpu. When I end the task, it immediately just comes back 5 seconds later, and the computer runs like crap again

  • Kapil Arya

    ^^ Try this. Open Services snap-in by running services.msc. Locate the Diagnostic Policy Service and try setting it to Disabled. See if it helps!

  • Alif Wisesa

    Thank you for this, just recently got my laptop repaired but the mobo along with the cpu got replaced with a different one from the original, suddenly DSP keep hogging the cpu usage. I was thinking about just disabling the service but deleting that .dat file fixed the high cpu usage.

  • Kapil Arya

    ^^ Glad to help Alif!

  • Keni

    I don’t have a sru map, so the SRUDB.DAT is also gone and i can’t find it anywhere.
    but service host still starts and takes up ALOT of cpu up to 40% at some times. i tried the system file checker scan and it said that all the corrputed files were fixed and nothing else. What do i do?

  • Bob

    [Win 10Pro, 21H1] I know this comment is rather late (Sept 2021), but if you are desperately searching for an answer, as I was, maybe it will help someone. Found plenty of suggestions involving .reg, .bat, delete various files, and so on. Have grown old while fixing Windows for the last 30 years, so I don’t have the patience I once had. Decided to whack \sru\ totally. (And I did a complete backup a few weeks ago.) Deleted the whole thing, all 6GB (!) of it, all thousands and thousands and thousands of 65536 byte .log files along with a few others. And it appears to have worked. Fingers crossed. The sru dir hasn’t even been recreated.
    Many thanks to the host of this site, along with thanks to Jon B (above) whose advice to delete .log pushed me to delete everything.

  • Kapil Arya

    ^^ Thanks Bob for sharing this, will be helpful to others!

  • shadowncs

    This helped, thanks! Need to stop the DPS first, so it releases the .dat file

  • Kapil Arya

    ^^ Glad it helped ๐Ÿ˜Ž

  • Artem Russakovskii

    Wow, 24k+ SRU log files, and a 12.5GB SRUDB.dat. Constant CPU usage by the service.

    Thanks for the tip for what to clean up.

  • Kapil Arya

    ^^ You’re most welcome!

  • Leave a Reply

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