CPU utilization is a key metric to determine how much CPU uses for a process. Today we will review why the CPU utilization for a process is over 100%. This can help us understand how CPU works on Linux.
How to Check CPU Utilization on Linux
Top is a basic Linux command to display Linux process info. It covers the system load average, CPU utilization, process status etc.
In the following example, the utilization for process YYYY is 150%.
top - 05:43:20 up 10 days, 20:45, 1 user, load average: 0.29, 0.29, 0.29
Tasks: 755 total, 1 running, 754 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.4 us, 0.4 sy, 0.0 ni, 98.8 id, 0.4 wa, 0.0 hi, 0.0 si, 0.0 st
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5424 root rt 0 1590640 176520 106044 S 150 0.5 395:13.89 YYYY
8081 oracle -2 0 1556468 20096 17032 S 1.7 0.1 255:57.88 asm_vktm_+asm1
57124 oracle -2 0 4920124 19764 16640 S 1.7 0.1 157:05.44 ora_vktm_test21
Why CPU Utilization is over 100% for a Process?
The values of CPU usage over 100% for "YYYY" process is not a problem and it is a absolutely expected behaviour on multi-core CPU system based on the man page. It means that the process consumes more than 1 CPU (core). As per the man page:
In a true SMP environment, if a process is multi-threaded and top is not operating in Threads mode, amounts greater than 100% may be reported.
Example:
CPU-1 <<<------+----YYYY is using 100% of CPU-1.
CPU-2 <<<------+----Another YYYY thread is using 50% of CPU-2.
Note: In the above condition, the top command will show you 100% + 50% = 150% CPU usage for process "YYYY".
Related Post:
CPU utilization Not Evenly distributed