Most computers these days have multi-core CPUs. There are multiple processing cores all working independently on different tasks. While many processes may only be able to operate in a single CPU core, you can have multiple processes using different cores running simultaneously.
It’s important to be able to say that a process is pinning its own individual core because that indicates that it is CPU-limited. It’s more important to see chrome.exe using 100% of a CPU core rather than using 12.5% of a whole CPU.
As a result, you can get >100% CPU usage with modern CPUs.
CPU usage is a measurement of the amount of time that a logical processor spends executing a workload other than the system idle process (which may include putting the hardware into a low power state)
If a computer has multiple logical processors, each processor is scheduled independently and has its usage computed independently.
Microsoft Windows normalizes this over the entire system. If the system has four logical processors, then each processor accounts for 25% of the maximum system utilization.
Unix-like operating systems including FreeBSD, Linux, and MacOS do not normalize this measurement. The same system with 4 logical processors can have a usage between 0 and 4, or 0% through 400% depending on how one looks at it.
CPU usage is not a measurement of computational throughput; rather, it is a measurement of relative busyness/availability.
Back in the “good old days” our CPUs were simple. One computer, one CPU. Our tools would simply check how many ticks a given process took, divide that with the total number of ticks per second and presto you have a CPU%. That just doesn’t work with modern CPUs, but our tools are the same.
Most computers today actually have more than a single CPU in them. While you may only see one CPU chip, they mostly come with several “cores” which is a fancy way of saying CPU. 2, 4, 8 or even 16 cores is not uncommon for consumer grade PCs these days. Each physical core is a whole CPU and they work in parallel. Technically each core doubles the speed but not entirely true. There are also virtual cores – which makes CPUs show twice as many cores as they really have. Each core is treated as a full CPU – meaning if you have 16 cores, you have 1600% cpu. It’s why some systems now use milicores instead. It’s a lot easier to understand that 5000 milicores out of 16000 is less than half the total capacity; % as you indicated gives you an expectation that 100% is full.
Latest Answers