топ команда на багатоядерному процесорі


46

Я використовую Freescale IMX6 чотирьохядерний процесор. Я хочу знати, чи перераховує topкоманда використання CPU всіх 4 ядер або одного ядра. Я бачу, як використання процесора програми однакове з 4 ядрами та з одним ядром. Я здогадувався, що використання процесора додатком збільшиться на одному ядрі та зменшиться на 4 ядра, але воно не змінилося.


5
спробуйте натиснути 1, поки працює
верхня частина

Чи можете ви, будь ласка, докладно. Як у тому, що станеться, якщо натиснути 1. Тому що я отримую цей непослідовий результат вже з 2 днів.
користувач3818847

1
Яка програма це? Чому, на вашу думку, ваша програма повинна використовувати декілька ядер, якщо вони доступні? Існує багато додатків, які працюють над єдиним процесором / ядром, і для того, щоб ніхто не заважав витрачати час на їх паралельність.
Антон

2
немає. якщо кілька ядер, вони накопичуються до понад 100%. 4 ядра можуть досягати 800% при гіпертетизації на кожному ядрі
Dani_l

1
Мені подобається використовувати htopдля цього.
Річард

Відповіді:


67

Я не зовсім впевнений, що ви тут просите. Так, topпоказано використання CPU у відсотках від одного процесора за замовчуванням. Ось чому ви можете мати відсотки> 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-е логічне ядро. В результаті topвидно 4 ядра.
terdon

Вибачте за задиркування, в мою робочу добу ми маємо розрізняти розетки, сердечники та нитки при резервуванні ресурсів. Я здогадуюсь, звичка застрягла.
Dani_l

9

просто натисніть на "1", поки верхній біг працює


5
Ця відповідь є в коментарях вже роками ... будь ласка, додайте щось нове.
yeti

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
...     
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.