cancel
Showing results for 
Search instead for 
Did you mean: 

CPU Temp and fans jump only when Monitor go to sleep. Windows is still running.

The_Cool_Dude
Level 10
Hello there.

I have a strange issue I hope someone can help with.

Here is my setup:

ROG STRIX X570-E GAMING BIOS 4403
AMD Ryzen 7 5800X 8-Core Processor
32 GB RAM
NZXT Kraken Z73
evga Geforce RTX 3080
Windows 11 Pro all up to date

Everything is running fine when I am using the machine. All temperatures and fan speeds are normal. The issue only occurs when I leave my machine. For example:

After I press the Windows Key + L to lock my machine, the screen will show the lock screen for a minute or so then the screen shuts off. After that the CPU temperature will jump from 40c to 60c and the CPU fans spin up and it will sit like that until I come back and wake the screen and log back in then the CPU temp will lower back to around 40c and the fans quiet down.

Note that the machine is not set to go to sleep at all. The power plan is based off the Balanced Power plan and I've set it to only turn off the display and never go to sleep.

My first thought is that something in Windows 11 is running causing the CPU temp and fans to jump. I've checked the task manager but nothing out of the ordinary is there. Even if I reboot and not open any programs, and then use the Windows Key + L to lock my machine right away, right after the screen shuts off the CPU and fans jump again.

I'm at a loss as to what is causing this as I can't find what is running or starting up when my display turns off.

Any ideas as to what I can do to resolve this issue other than shut the machine off when I'm not using it?

Thanks in advance!
2,275 Views
5 REPLIES 5

Murph_9000
Level 14
I've not really played with it much myself, but AIDA64 has sensor logging. It looks like it can log CPU utilisation, so you could use that to confirm that it's actually CPU activity that's doing it (the most likely cause), and log whatever other system stats you think might be enlightening.

To find the actual process(es) using CPU heavily, you could use PowerShell and Get-Counter to capture and log per-process CPU usage. Here's an example from the MS docs (example 14 in the PS 7.2 docs for Get-Counter) which gives you a starting point:

$Procs = Get-Counter -Counter "\Process(*)\% Processor Time"
$Procs.CounterSamples | Sort-Object -Property CookedValue -Descending |
Format-Table -Property Path, InstanceName, CookedValue -AutoSize


That gives you a snapshot of per-process CPU% at the time (with 100 being 100% of a single logical CPU, so the total adds up to 3200% on a 5950X with 32 logical CPUs (16 dual-thread cores)). Here's a version which filters out all the processes sat on 0:

$Procs = Get-Counter -Counter "\Process(*)\% Processor Time"
$Procs.CounterSamples |
Where-Object -Property CookedValue -GT 0 |
Sort-Object -Property CookedValue -Descending |
Format-Table -Property Path, InstanceName, CookedValue -AutoSize


Wrap that in a loop which captures and logs the data, and you should be able to see exactly what is chewing CPU. That's assuming the cause is the obvious one, that some process is ramping up, using a lot of CPU, generating heat, and the fans are just doing what they are supposed to do in that situation.

The_Cool_Dude
Level 10
Thanks Murph_9000 for your response. Greatly appreciated.

However I do not know how to wrap this code in a loop or know where to find the information I need. My powershell skills are very basic.

I tried to run it but this is what I got.....

PS C:\WINDOWS\system32> $Procs = Get-Counter -Counter "\Process(*)\% Processor Time"
>> $Procs.CounterSamples |
>> Where-Object -Property CookedValue -GT 0 |
>> Sort-Object -Property CookedValue -Descending |
>> Format-Table -Property Path, InstanceName, CookedValue -AutoSize
Get-Counter : The data in one of the performance counter samples is not valid. View the Status property for each
PerformanceCounterSample object to make sure it contains valid data.
At line:1 char:10
+ $Procs = Get-Counter -Counter "\Process(*)\% Processor Time"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (:) [Get-Counter], Exception
+ FullyQualifiedErrorId : CounterApiError,Microsoft.PowerShell.Commands.GetCounterCommand


Path InstanceName CookedValue
---- ------------ -----------
\\chris-ryzen\process(_total)\% processor time _total 1584.44874370321
\\chris-ryzen\process(idle)\% processor time idle 1545.49965954138
\\chris-ryzen\process(nzxt cam#4)\% processor time nzxt cam 14.0216702982585
\\chris-ryzen\process(wmiprvse#1)\% processor time wmiprvse 9.347780198839
\\chris-ryzen\process(dwm)\% processor time dwm 6.23185346589267
\\chris-ryzen\process(phoneexperiencehost)\% processor time phoneexperiencehost 3.11592673294633
\\chris-ryzen\process(cam_helper#2)\% processor time cam_helper 3.11592673294633
\\chris-ryzen\process(taskhostw)\% processor time taskhostw 3.11592673294633
\\chris-ryzen\process(svchost#29)\% processor time svchost 3.11592673294633
\\chris-ryzen\process(lightingservice)\% processor time lightingservice 1.55796336647317
\\chris-ryzen\process(explorer)\% processor time explorer 1.55796336647317
\\chris-ryzen\process(system)\% processor time system 1.55796336647317


PS C:\WINDOWS\system32>

Any assistance would be appreciated.

Thanks again.

Ok, no problem. You can probably just ignore the error stuff about invalid data at the top, that's probably just noise from Windows being Windows. I don't know exactly why you're getting that exception, but it's not necessarily something to worry about.

Here's a version with the output cleaned up and simplified a little. It runs every 10 seconds until you stop it by hitting Ctrl+C. Just paste it into a PowerShell window, it should give the first output immediately. You can then lock your screen to provoke the problem, and the script should continue to run. Wait a minute or so, then unlock the screen and you should be able to scroll back and see what was using CPU. It spits out a timestamp and then effectively a snapshot of CPU usage (equivalent to Task Manager), sleeps, and repeats until stopped.


$Counter = "\Process(*)\% Processor Time"
$Interval = 10 # Number of seconds between loops

while ($true) {
$Procs = Get-Counter -Counter $Counter
$Procs.Timestamp
$Procs.CounterSamples |
Where-Object -Property CookedValue -GT 0 |
Sort-Object -Property CookedValue -Descending |
Format-Table -Property InstanceName, @{ Label='CPU'; Expression={$_.CookedValue/100}; FormatString='P' } -AutoSize

Start-Sleep $Interval
}


The output should look similar to:

07 August 2022 08:42:28

InstanceName CPU
------------ ---
_total 3,198.34%
idle 3,130.65%
lightingservice 40.00%
wmiprvse 10.77%
msmpeng 6.15%
taskmgr 3.08%
aac3572mbhal_x86 3.08%
gpu tweak iii 1.54%
steamwebhelper 1.54%
perfmon 1.54%


On your 5800X, the total should be around 1600% for the 16 logical CPUs (8 dual-thread cores), the total varies a little from the theoretical due to the way Microsoft measure it. Hopefully this should show something using a lot of CPU after the display is locked. Don't worry about possible higher CPU just after locking, in the first output after the screen goes off, as some stuff may react to the loss of the display before settling down again. Look for what goes high and stays high.

The_Cool_Dude
Level 10
Thank you Murph_9000!!!!!!

You are awesome and with this code I was able to determine what was eating up my CPU. Here are the results:

Sunday, August 7, 2022 12:27:35 PM



InstanceName CPU
------------ ---
_total 1,582.74%
idle 1,557.98%
dwm 6.19%
phoneexperiencehost 4.64%
nzxt cam 4.64%
cam_helper 4.64%
lightingservice 1.55%
explorer 1.55%
qbittorrent 1.55%



Sunday, August 7, 2022 12:29:14 PM



InstanceName CPU
------------ ---
_total 1,599.53%
idle 1,478.03%
phoneexperiencehost 99.97%
cam_helper 4.61%
wmiprvse 4.61%
nzxt cam 3.08%
system 3.08%
agent 1.54%
lightingservice 1.54%
dsatray 1.54%
steam 1.54%



Sunday, August 7, 2022 12:29:25 PM



InstanceName CPU
------------ ---
_total 1,601.11%
idle 1,482.56%
phoneexperiencehost 100.07%
nzxt cam 3.08%
msedge 3.08%
cam_helper 3.08%
msmpeng 1.54%
lightingservice 1.54%
msedge 1.54%
asuscertservice 1.54%
steam 1.54%
msedge 1.54%

phoneexperiencehost is the culprit. That is the Microsoft Phone Link software that connects my cell phone to my PC. A rather handy utility however I don't need it running when I'm not at my machine so I just have to remember to turn it off before I leave my PC.

When I have Phone Link shut off and then I use Windows Key + L to lock my machine, the CPU temps and fans no longer jump like they were before.

Thank you so very much for your help!

I've submitted feedback to MS using the Feedback Hub not that they are going to fix this for me but to make them aware of the issue with Phone Link.

Thanks again!!

BobBlack
Level 7

I have a similar problem, but to be honest I can only install the game on my computer. I do not understand what you were doing here and where to look. Can you tell me in plain language where to click to understand what my problem is. I am so you understand all my education in this matter, I can not even install windows. The last time I activated it on my new computer I had a hard time. What is the normal temperature for the processor can let it work as it did. Sometimes just annoyed by the sound of the fans even though I do not even use them. I close the lid it first stops the noise, you know, and then again as if I just start it up. I searched a lot of sites, had to register here and write.