top command on multi core processor
I am using freescale IMX6 quad processor. I want to know if the
topcommand lists the CPU usage of all 4 cores or of a single core. I am seeing an application's CPU usage being the same with 4 cores and with a single core. I was guessing the CPU usage by the application will increase on a single core and decrease on 4 cores but it has not changed.
Could you please elaborate. As in what happens if I press 1. Because I am getting this inconsistent result since 2 days.
you may find this link useful: http://unix.stackexchange.com/questions/41311/cpu-and-core-usage-stats
Which application is that? Why do you think your application should use multiple cores if available? There are many applications out there that work on a single CPU/core and for which nobody bothered to take the time to parallize them.
@Anthon well that's the question, if top gives you a percentage of 4core or a percentage of a core, because if the percentage comes from 4 cores, then the value (even with a non threaded app should be 4 time fewer
no. if multiple cores, they accumulate to over 100%. 4 cores can get as high as 800% with hyperthreading on each core
I'm not entirely sure what you're asking here. Yes,
topshows CPU usage as a percentage of a single CPU by default. That's why you can have percentages that are >100. On a system with 4 cores, you can see up to 400% CPU usage.
You can change this behavior by pressing I (that's Shift + i and toggles "Irix mode") while
topis running. That will cause it to show the pecentage of available CPU power being used. As explained in
1. %CPU -- CPU Usage The task's share of the elapsed CPU time since the last screen update, expressed as a percentage of total CPU time. In a true SMP environment, if 'Irix mode' is Off, top will operate in 'Solaris mode' where a task's cpu usage will be divided by the total number of CPUs. You toggle 'Irix/Solaris' modes with the 'I' interactive command.
Alternatively, you can press 1 which will show you a breakdown of CPU usage per CPU:
top - 13:12:58 up 21:11, 17 users, load average: 0.69, 0.50, 0.43 Tasks: 248 total, 3 running, 244 sleeping, 0 stopped, 1 zombie %Cpu0 : 33.3 us, 33.3 sy, 0.0 ni, 33.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 16.7 us, 0.0 sy, 0.0 ni, 83.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 60.0 us, 0.0 sy, 0.0 ni, 40.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8186416 total, 6267232 used, 1919184 free, 298832 buffers KiB Swap: 8191996 total, 0 used, 8191996 free, 2833308 cached
with hyperthread I believe you can see up to 800% as /proc/cpuinfo will show each thread as a cpu
@Dani_l yes, whether the "core" is physical or virtual is irrelevant, it is treated as a "CPU" by `top`. The output I show is from my laptop which has a single physical CPU with two cores, each of which has a 2nd logical core. The result is that `top` sees 4 cores.
If you're wanting to open
topimmediately displaying separate CPUs without needing to press
1, you can use the
... %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu2 : 44.7 us, 55.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st %Cpu3 : 46.7 us, 53.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st ...