Як мій комп'ютер може використовувати 300% обробну потужність ПК?


65

Я граю зі сценарієм, і я захопився (він все ще працює зараз, і все ж мій комп'ютер ще не загинув). Я виконую 17 ітерацій сценарію (з наміром зірвати комп’ютер).

Дивлячись на монітор активності, я бачу, що кожен процес Python має унікальний pid і що вони, схоже, займають близько 17-20% моєї процесорної потужності кожен ... Як це можливо? Чи мій комп’ютер магічним чином зростав на 200% потужність і десь порушив закони термодинаміки?

Введіть тут опис зображення


28
300% ЦП = 3 ЦП.
користувач253751

7
"Рівень потужності 400%"
Nitish

Нагадує про всі ті епізоди Star Trek, де двигуни Warp вийшли з-під контролю ...
Даніель

Ось якийсь серйозний розгін !!
Ендрю Грімм

Відповіді:


101

На OS X, як і у інших * nixes, навантаження процесора вимірюється на основі ядра віртуального процесора. Якщо у вас декілька - ви можете мати 200% і більше комбінованих при повному навантаженні.

Це відрізняється від Windows і, можливо, деяких інших систем, де завантаження процесора обчислюється на весь процесор (або процесори - я не пам’ятаю, як він поводиться, коли має кілька фізичних процесорів).


21
Ця відповідь точна лише для деяких платформ! Наприклад, Windows повідомляє про загальне завантаження процесора, а не як відсоток від одного ядра.
fabspro

2
Варто зазначити, що представлення десяткового навантаження (наприклад, 0,5 або 2,4), як повідомляється, наприклад, командою uptime, є не сумою кожного базового відсотка використання, а, скоріше, оцінкою кількості ядер, які вам потрібно буде обробити кожен запит миттєво. Я не впевнений, наскільки ця програма нормалізує значення.
Себ

3
@Sebb середня завантаженість (LA) - це середня кількість процесів, які чекають на виконання, вони можуть чекати IO, не потрібен процесор
Vasfed

3
@ Random832 від linux man - man7.org/linux/man-pages/man1/uptime.1.html : "Системне завантаження в середньому - це середня кількість процесів, які перебувають у стані запуску чи безперебійності. Процес у стані запуску або використовує процесор, або чекає використання процесора. Процес у безперебійному стані чекає деякого доступу вводу / виводу, наприклад, очікування диска. "
Васфед

4
@slebetman середнє завантаження - це не час роботи процесора, а довжина черги, наприклад див. serverfault.com/a/524818
Vasfed

81

OS X і Linux і, можливо, інші операційні системи UNIX (а точніше найпоширеніші інструменти для цих систем) відображають використання процесора по-різному від Windows. У Windows 100% означає " всі використані ресурси процесора". У Linux це означає, що одна «нитка» (як у Hyper-Threading) повністю зайнята. Як такий, він може доходити до (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs)загальної суми.

Хоча це не зовсім пов’язано, ще один цікавий факт: Windows 10 додатково нормалізує використання процесора, використовуючи поточний стан процесора процесора. Таким чином, процесор 2 ГГц, що працює при гасінні на частоті 1 ГГц, буде зайнятий лише до 50%.


7
Цікавий факт. :)
Геннес

7
А за допомогою Turbo Boost Windows повідомить, що процесор працює на 100%
Martheen Cahya Paulo

Я думаю, що це BSD спосіб, а не * nix спосіб взагалі. Я бачу те саме на моєму Mac та вікні FreeBSD.
JDługosz

1
@ JDługosz Я впевнений, що це правда і для Linux, принаймні, для деяких його інструментів. Я майже впевнений, що так topповодиться, наприклад.
Рейраб

12

Як уже вказувалося в кількох відповідях, Mac показує відсоток процесора кожного процесу як "відсоток одного ядра", тому слід розділити це на кількість ядер [включаючи HT як "подвійне"]

Якщо ви не впевнені, скільки віртуальних ядер у вас з’явиться, Cmd ⌘ 3 відкрийте панель історії процесора Activity Monitor, де ви можете просто порахувати смуги;)

введіть тут опис зображення

Безпосередньо внизу, де ви зрізали зображення, є інформація, необхідна для швидкого визначення фактичного загального використання для системи :, Користувач: І в режимі очікування: У цьому полягає ваш простий загальний показник до 100%

введіть тут опис зображення


4
по-справжньому хоч? 24 ядра ???? Я ледве отримав 4 :) TIL дійсно дякую за те, що поділився цим !: puu.sh/nNrHU/f2abb55dc7.png
Frankenmint

5
а-а ... так - це Mac Pro 5,1 - останній із "сирників". Подвійний 6-ядерний Xeons [+ HT];)
Tetsujin

6

Монітор активності насправді не вимірює потужність обробки, яку використовує кожен додаток / процес, він просто оцінює його за допомогою алгоритму. Тож може бути неточним ...

Крім того, як зазначає @Vasfed, споживання процесора вимірюється на ядро ​​процесора. Кілька ядер можуть означати більше 100% використання ...

Виродник час від часу натрапляє на це явище і вщухає, поки Суперусер не прийде йому на допомогу ...; D


@underscore_d Так ... але коли я відповів, була лише одна відповідь. Інші (правда, кращі) відповіді були опубліковані пізніше ...
rahuldottech

досить чесно, я повинен був би перевірити час минулого рівня "днів" ... це не так вже й погано: p
підкреслити
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.