верхняя команда на многоядерном процессоре

46

Я использую четырехъядерный процессор Freescale IMX6. Я хочу знать, topперечисляет ли команда использование процессора всеми 4 ядрами или одним ядром. Я вижу, что загрузка ЦП приложения одинакова с 4 ядрами и одним ядром. Я предполагал, что загрузка процессора приложением увеличится на одном ядре и уменьшится на четырех ядрах, но не изменилась.

user3818847
источник
5
попробуйте нажать 1, когда верх работает
Dani_l
Не могли бы вы уточнить, пожалуйста. Как и в случае, если я нажму 1. Потому что я получаю этот противоречивый результат с 2 дней.
user3818847
1
Какое приложение это? Как вы думаете, почему ваше приложение должно использовать несколько ядер, если доступно? Есть много приложений, которые работают на одном процессоре / ядре и для которых никто не удосужился потратить время, чтобы их парализовать.
Энтон
2
нет. если несколько ядер, они накапливаются до более чем 100%. 4 ядра могут достигать 800% с гиперпоточностью на каждом ядре
Dani_l
1
Мне нравится использовать htopдля этого.
Ричард

Ответы:

67

Я не совсем уверен, что вы спрашиваете здесь. Да, topпоказывает использование ЦП в процентах от одного ЦП по умолчанию. Вот почему вы можете иметь проценты> 100. В системе с 4 ядрами вы можете увидеть до 400% загрузки ЦП.

Вы можете изменить это поведение, нажав I(это Shift+ iи переключает «режим Irix») во время topработы. Это заставит его показывать процент доступной используемой мощности процессора. Как объяснено в man top:

    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.

В качестве альтернативы вы можете нажать кнопку, 1которая покажет вам разбивку использования ЦП на ЦП:

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
Тердон
источник
1
с hyperthread, я полагаю, вы можете увидеть до 800%, так как / proc / cpuinfo покажет каждый поток в виде процессора
Dani_l
@Dani_l Да, физическое или виртуальное «ядро» не имеет значения, оно рассматривается как «процессор» top. Вывод, который я показываю, происходит с моего ноутбука, который имеет один физический процессор с двумя ядрами, каждое из которых имеет 2-е логическое ядро. Результат - top4 ядра.
Тердон
Извините за придирки, в моем дневном занятии мы должны различать сокеты, ядра и потоки при резервировании ресурсов. Я думаю, что привычка застряла.
Dani_l
9

просто нажмите «1», пока топ работает

Абдулла
источник
5
Этот ответ в комментариях уже много лет ... пожалуйста, добавьте что-то новое.
0

Если вы хотите topсразу открыть отдельные процессоры, не нажимая 1, вы можете воспользоваться этой -1опцией.

например:

top -1

...
%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
...     
Ли МакКаллох
источник