2025年2月21日星期五

Diagnostic Policy Service CPU 占用

最近给那台老的 Windows 机器清灰、重新涂硅脂、升级 BIOS。5950x 终于算是稳定了下来,不再随机重启了(应该主要是 AGESA version ComboV2PI 1.2.0.Cc 的功劳,之前几乎每一版  BIOS 都有 BUG,不是随机重启就是性能低到离谱,要不然就是 USB 故障)。

硅脂之前用了暴力熊,TFX 之类的“高端”硅脂,总之就是比较贵,但是实际用下来,效果也就那样。所以这次用了比较常规的 7921。涂 7921 其实不麻烦,不用很精细地用手套慢慢压之类的,就是挤个 X 形然后散热器盖上锁紧完事。不用怕挤多了,台式机的散热器那种锁紧压力,想厚都不可能。X 形的最大优势是在压力下,硅脂是从中心往四条边扩散的,空气都从四边挤出去了。如果是精涂或者是多点挤,空气往往还会卡在硅脂里面出不去。X 形的坏处就是安装完毕之后旁边会被挤出挺多,其实也没啥关系,实在堵着慌擦掉就好。总之,折腾完毕之后 Prime95 Blend 烤鸡也就 74、75 度,俩单核 5.05G,全核 4.5G,作为风冷还是挺满意的。

结果问题来了,进了桌面完全闲置的状态,Package 温度也上 70 度,功耗也有 70、80W。这个就很不正常。看了一下任务管理器,得,Diagnostic Policy Service CPU 给我一直跑得欢呢。

AI 时代,搜索容易了很多,略过过程不提,问题出在 Windows 的一个陈年老 BUG 上,就这服务会猛往 system32\sru 下面写文件,需要强制停止服务,删除这个文件夹,然后重启服务。之后这个服务就不会再往里面写日志了。

Reddit 上已经有人写了个脚本干这事



@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

UPDATE: microsoft fixed that issue and this fix is not longer be neccesary :)

没有评论:

发表评论