Open KyleKolander opened 8 months ago
Few things worth checking here:
Enable cycle-based CPU usage
in SI.It could be a discrepancy in the cycle-based CPU usage and efficiency cores. I'm not sure, I don't have access to that type of hardware to test myself. If it is, it's possible task manager if over-reporting the actual utilization of efficiency cores. This would become evident with 1 above. Hovering over one of the graphs in SI should report the core type. It's also possible the kernel's accounting of intel efficiency cores changed in the most recent versions of Windows. The observation here seems similar to the ARM cycle accounting.
I first ran a test with TM, SI, PE and RM (see screenshot). They're all over the place.
Then I disabled Enable cycle-based CPU usage
in SI (as you suggested) and re-ran the test. This caused SI to almost exactly mimic PE both WRT total CPU utilization and logical processor graphs. TM and RM stayed pretty much the same.
SI reports the first 16 logical processors as P-Core, and the last 16 as E-Core.
I will say that on the TM Details tab, if you sort by CPU, the total (excluding System Idle Process) does not add up to the total reported on the Performance tab (e.g., Performance tab reports 8%, but Details tab reports 3-5%). That being said, the Processes tab total for CPU does match the Performance tab. ha!
Which one is right? And why? Should I leave Enable cycle-based CPU usage
disabled? It's important to understand CPU utilization...
I'm sure there's a good explanation for all of this, and my curious mind would very much like to know! :) I appreciate the help @jxy-s
I will say that on the TM Details tab, if you sort by CPU, the total (excluding System Idle Process) does not add up to the total reported on the Performance tab (e.g., Performance tab reports 8%, but Details tab reports 3-5%). That being said, the Processes tab total for CPU does match the Performance tab. ha!
Task Manager uses "Processor Utility" for reporting this information: https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/cpu-usage-exceeds-100
Which one is right? And why? Should I leave Enable cycle-based CPU usage disabled? It's important to understand CPU utilization...
This blog post will help add some color to the subject. It's focused on ARM but will help explain the option in detail. My advisement is to keep Enable cycle-based CPU usage
on for more accurate reporting.
Then I disabled Enable cycle-based CPU usage in SI (as you suggested) and re-ran the test. This caused SI to almost exactly mimic PE both WRT total CPU utilization and logical processor graphs. TM and RM stayed pretty much the same.
If PE and SI are both reporting the same information (with cycle-based CPU usage off) it leads me to believe there is a problem with Task Manager. We regularly observe Task Manager reporting +/- 30% of what is should be (this is due to the "Processor Utility" linked above).
I only have access to a Windows 10 machine with Intel performance and efficiency cores. It's an older Intel CPU than your 14900K, but checking that machine shows consistent information for me. I checked the 10.0.22621.3007
kernel and I'm not immediately seeing any meaningful changes to the accounting of cycles or timing. This could be due to processor grouping, my mixed-core isn't configured to use processor groups, yours could be? System Informer is group-aware and Processor Explorer isn't.
To help diagnose this type of problem I often use CpuStres to stress targeted processors. It might be useful to run this experiment on your machine and see if the accounting is what you would expect. Using CpuStress you can set the ideal CPU and affinity to isolate the thread to a processor and apply a load to it. Once a load is applied you can check the reporting in the various tools to look for egregious inconsistencies.
1) Task Manager reports "Processor Utility" on Windows 8, 10 and 11 which is completely different to processor utilization reported by Process Explorer and System Informer. 2) TM and RM are both automatically launched with administrative privileges - Querying the cycle counters for some processes are restricted and you have to manually launch SI and PE with administrative privileges. 3) Your processor has multiple processor groups and Process Explorer is unable to query multiple groups (E vs P).
https://aaron-margosis.medium.com/task-managers-cpu-numbers-are-all-but-meaningless-2d165b421e43
TM Details tab, if you sort by CPU, the total (excluding System Idle Process) does not add up to the total reported on the Performance tab
Task Managers details tab is the only remaining place where TM reports utilization.
Good lord... My head hurts after reading that. 😁 Thanks for the link. That helps to make more sense of it.
You guys are the experts (as far as I'm concerned). Given my CPU and OS, what tool/configuration/metric(s) should I use as the most accurate representation of how hard my system is working? I'm guessing you'll say System Informer, which is good, but how should I configure the options? And how should I interpret the results (e.g., on what scale)?
Brief description of your issue
Intel Core i9 14900K running multiple threads at relatively high load, which is reflected well in Windows Task Manager, but not in System Informer. I'm using the nightly build version 3.0.7429 on Windows 11 Pro 23H2 OS Build 22631.3007.
The total CPU utilization shows as 70% in TM but only 41.14% in SI. The obvious difference is by logical processor (32). Just eyeballing it, TM looks close to 70%, but SI's 32 graphs are nowhere near 41%. I tried resizing the window, closing and reopening the window, closing and reopening SI, but was met with the same result.
So it's three things:
Steps to reproduce (optional)
Open System Informer and Task Manager at the same time (side by side) and set their CPU graphs to show logical processors. Run tasks that consume a lot of multithreaded CPU.
Expected behavior (optional)
Actual behavior (optional)
No response
Environment (optional)
No response