Кількість процесорів в / proc / cpuinfo


26

Поки я вивчав навантаження на процесор, я зрозумів, що це залежить від кількості ядер. Якщо у мене є 2 ядра, то завантаження 2 дасть 100% використання процесора.

Таким чином , я спробував з'ясувати , сердечники. (Я вже знаю , що система має 2 ядра, 4 потоки , так 2 віртуальних ядра Перевірте тут про процесор ) .so я побіг cat /proc/cpuinfo Який дав мені

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 1600.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2
apicid      : 1
initial apicid  : 1
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 800.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 69
model name  : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
stepping    : 1
microcode   : 0x17
cpu MHz     : 774.000
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 1
cpu cores   : 2
apicid      : 3
initial apicid  : 3
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
bogomips    : 3591.40
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

Зараз я зовсім розгублений. Він показує 4 процесори з 2 ядрами процесора. Чи може хтось пояснити цей вихід?

Після того, як мій набір процесора становив 3,70, це максимальне навантаження? Ще на той момент процесор був на рівні <50%.

А як щодо турбо-бусту? Чи всі сердечники турбопідсилювачі чи лише фізичні?

Будь-який метод в Ubuntu, щоб отримати поточну частоту процесора, щоб побачити, чи не працює процесор на турбо-імпульсі чи ні?

Навантаження становила 3,70 приблизно 100%. Але використання процесора не було 100% через час відгуку на IO. Це не означає, що пристрій IO буде працювати на максимальній швидкості, але пристрій io буде зайнятий на 100%, що іноді впливає на програми, що використовують IO ex: музика може зламатися.


2
Hyper threadading тому ви бачите 4 замість 2.
derobert

1
Як документація, так і cpuinfo говорять про те, що у вас є два ядра процесора. Процесори 0 і 1 є в ядрі 0, тоді як процесори 2 і 3 - в ядрі 1 (дивіться на рядок core id). physical idДає чіп (я думаю). Тут це 0 для всіх процесорів, тому у вас є лише одна мікросхема.
lgeorget

Так що навантаження процесора до 100% ... 2 або 4?
Мадхурендра Сачан

Що тут процесор?
Madhurendra Sachan

Зверніть увагу, що визначення потоку Intel ("Нитка або нитка виконання - це програмний термін для основної впорядкованої послідовності інструкцій, яка може бути передана або оброблена одним ядром процесора ") може змусити думати, що з 2 ядрами і 4 потоки, як зазначено в специфікаціях, 2х4 = 8 потоків. Насправді у вас є 4 потоки загалом, а 2 ядра схожі на 4. Визначення Intel® Hyper-Threading Technology є чіткішим: воно "забезпечує дві потоки обробки на фізичне ядро " і пояснює, що ваша система бачить 4 процесора / побратимів з двох ядер процесора, встановлених однією мікросхемою
XavierStuvw

Відповіді:


35

Слова "процесор", "процесор" та "ядро" вживаються дещо заплутано. Вони посилаються на архітектуру процесора. Ядро - це найменший незалежний блок, який реалізує процесор загального призначення; процесор - це збірка ядер (у деяких системах ARM процесор - це збірка кластерів, які самі є збірками ядер). Чіп може містити один або більше процесорів (чіпи x86 містять один процесор, в цьому сенсі текстовий процесор ).

Hyperthreading означає, що деякі частини ядра дублюються. Ядро з гіперточенням іноді подається як збірка двох "віртуальних ядер" - це означає не те, що кожне ядро ​​є віртуальним, а множина віртуальна, оскільки це насправді не окремі ядра, і їм іноді доведеться чекати, поки інше ядро використання спільної частини.

Що стосується програмного забезпечення, то існує лише одна концепція, яка корисна майже скрізь: поняття про паралельні нитки виконання. Так, у більшості програмних посібників терміни CPU та процесор використовуються для позначення будь-якого обладнання, яке виконує програмний код. У апаратному відношенні це означає одне ядро ​​або одне віртуальне ядро ​​з гіперточенням.

Таким чином, topви показуєте 4 процесора, тому що ви можете одночасно виконувати 4 потоки. /proc/cpuinfoмає 4 записи, по одній для кожного процесора (у цьому сенсі). Ці processorцифри (які число записів в ) відповідають цим 4 потоків.cpuNUMBER/sys/devices/system/cpu

/proc/cpuinfo - одне з небагатьох місць, де ви отримуєте інформацію про те, що обладнання реалізує ці нитки виконання:

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

означає, що cpu0це один з 4-х потоків всередині фізичного компонента (процесора) номер 0, і це в ядрі 0 серед 2 у цьому процесорі.


Приємне пояснення, що ви залишили 3 запитання Once my cpu load was 3.70, Is this maximum load? Still at that time cpu was at <50%., What about turbo boost ? Are all cores are turbo boosted or only physical ?&How to check frequency.
Madhurendra Sachan

@MADTerry Яка програма повідомила, що «завантаження процесора становило 3,70», якими термінами саме? Ви маєте на увазі середнє навантаження? Що ви маєте на увазі під "процесором, став <50%"? Що стосується Turbo Boost, я не знайомий з цим, але не знаю, чому їх не було б стимульовано. Всі ядра є фізичними, якщо ви не працюєте у віртуальній машині: як я пояснюю у своїй відповіді, у «віртуальних ядрах», це не віртуальні ядра, це їх розділення.
Жил 'ТАК - перестань бути злим'

середнє навантаження. uptime.by cpu я мав на увазі використання процесора. я зрозумів, чому. Але як перевірити частоту або перевірити, чи процесор підвищений в турбо?
Мадхурендра Сачан

Я також заперечую, що з точки зору програмного забезпечення високого рівня ви більше зацікавлені в процесах (див. top, uptime). Який апаратний підрозділ займається процесами, в кінцевому рахунку є питанням програмного забезпечення низького рівня (компіляція, операційна система). У звіті cpuinfo викладається той факт, що кожен фізичний процесор (один з декількох процесорних процесорів на штампі) може розширити свої обчислювальні можливості за рахунок таких технологічних подвигів, як багатопотокова читання. Він вважатиме «будь-що», що може опікуватися одним процесом одночасно як процесор. Згідно з обліковим записом cpuinfo, можливості пристрою призводять до загальної кількості "процесорів"
XavierStuvw

13

Просто відповідаючи на ваше перше запитання. На виході cat /proc/cpuinfoви можете побачити таку інформацію: -

physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 2

Ви можете бачити кількість siblings is 4та cpu cores is 2. cpu cores2 - це загальна кількість ядер у процесорі, яку можна перевірити за специфікаціями, наведеними у вказаній URL-адресі Intel. Аналогічно siblingsвизначається кількість потоків, яка надається HTT Intel.

Аналогічно, для фізичного id його, 0що вказує, є лише один процесорний чіп, а для основних ідентифікаторів ви можете бачити, 0 and 1що це 2 ядра в процесорі.

Оновлення: додавання відповідей на інші запитання.

А як щодо турбо-бусту? Чи всі ядра турбопідсилювачі або лише фізичні?

Ну я скажу, всі активні сердечники турбопідсилюються. Ей, приятелю, ти мав би перевірити приклади нашої улюбленої Вікіпедії . Пояснили і з розрахунками.

Any method in ubuntu to get current cpu freq. if processor is on turbo boost or not.

Turbo прискорити чи ні, ви не можете часто використовувати деталі на виході lscpu. А для уточненого виходу: -

lscpu | grep Hz

Коротка та швидка відповідь, але чи можете ви пояснити залишилися 3?
Мадхурендра Сачан

@ MADTerry дякую, але інші, які мені не зрозуміли, проведуть деякі дослідження та відредагують мою відповідь. Тим часом давайте подивимось, чи з’являється хтось інший.
початківець

1
+1 для lscpuкоманди.
Арда

8

Ви можете спробувати це в терміналі:

sudo lscpu

Це дасть вам огляд фізичних ознак вашого процесора. Що стосується turbo boost чи ні, то це суто апаратний контроль, ніж сама ОС, тому, якщо Intel не має специфічних драйверів для Linux, які можуть налаштувати швидкість роботи процесора, немає твердого результату для перевірки стану turbo boost (якщо немає коду команди для Перевірте інші форуми, чи є підказки щодо вашого питання).

Щодо мене, це те, що я отримую, коли набираю вищевказану команду. Мій AMD сказав, що це чотирьохядерний, але моє фізичне ядро, перераховане тут, становить лише 2, з 2 потоками на ядро ​​(додає до 4 ядер). Я використовую процесор AMU A10 APU 5750м.

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             AuthenticAMD
CPU family:            21
Model:                 19
Stepping:              1
CPU MHz:               2500.000
BogoMIPS:              4990.51
Virtualization:        AMD-V
L1d cache:             16K
L1i cache:             64K
L2 cache:              2048K
NUMA node0 CPU(s):     0-3

0

Навантаження системи та% cpu - це два різних способи вимірювання того, як використовується ваша потужність процесора

  • завантаження системи: скільки процесів на одному процесорі перебувало у «готовому» стані - усереднено протягом певного часу. До 1 * процесора (у вашому випадку до 4) система вважається майже непрацюючою (порівняйте з супермаркетом, де в середньому лише один клієнт чекає на кожен замовлення). Ви, мабуть, не помітите затримки до 2 * процесора (у вашому випадку 8).
  • cpu%: скільки часу процесор виконує фактичну роботу, запустивши процес. Це схоже на точку зору касирів, а точніше - на керівника, - вони хочуть, щоб вони були зайняті весь час.

Обидва заходи пов'язані, але жодним чином не однакові.


я не питав різних. Я вже читав це у статтях. У будь-якому випадку ваша відповідь суперечить відповіді Жиля.
Мадхурендра Сачан

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