Количество процессоров в / proc / cpuinfo

Пока я узнавал о загрузке процессора, я узнал, что это зависит от количества ядер. Если у меня есть 2 ядра, тогда загрузка 2 даст 100% -ное использование процессора.

Поэтому я попытался найти ядра (я уже знаю, что система имеет 2 ядра, 4 потока и 2 виртуальных ядра. Посмотрите здесь о процессоре ). Так что я запускал 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, это максимальная нагрузка? Тем не менее, в то время cpu находился на уровне <50%.

Как насчет турбо-повышения? Все ли ядра увеличены или только физические?

Любой метод в Ubuntu, чтобы получить текущую частоту процессора, чтобы увидеть, работает ли процессор с турбонаддувом или нет?

Нагрузка составляла 3,70 около 100%. Но использование ЦП не было на 100% из-за времени отклика ввода-вывода. Это не означает, что устройство ввода-вывода будет на максимальной скорости, но устройство io будет на 100% занято, что иногда сказывается на приложениях с использованием IO ex: музыка может сломаться.

    Слова «CPU», «процессор» и «ядро» используются несколько запутанными способами. Они относятся к архитектуре процессора. Ядро – это наименьшая независимая единица, которая реализует процессор общего назначения; процессор представляет собой сборку ядер (на некоторых ARM-системах процессор представляет собой сборку кластеров, которые сами являются сборками ядер). Чип может содержать один или несколько процессоров (чипы x86 содержат один процессор, в этом смысле текстовый процессор ).

    Hyperthreading означает, что некоторые части ядра дублируются. Ядро с гиперпотоком иногда представляется как совокупность двух «виртуальных ядер» – это означает не то, что каждое ядро ​​является виртуальным, но что множественное число является виртуальным, потому что на самом деле это не отдельные ядра, и им иногда приходится ждать, пока другое ядро используя общую часть.

    Что касается программного обеспечения, существует только одна концепция, которая полезна почти везде: понятие параллельных потоков исполнения. Поэтому в большинстве руководств по программному обеспечению термины CPU и процессор используются для обозначения любого одного аппаратного обеспечения, которое выполняет программный код. В аппаратных терминах это означает одно ядро ​​или одно виртуальное ядро ​​с гиперпотоком.

    Таким образом, top показывает 4 процессора, потому что вы можете одновременно выполнять 4 потока. /proc/cpuinfo имеет 4 записи, по одному для каждого процессора (в этом смысле). Номера этих processor (которые являются числом записей в cpu NUMBER /sys/devices/system/cpu ) соответствуют этим 4 потокам.

    /proc/cpuinfo – одно из немногих мест, где вы получаете информацию о том, какое оборудование реализует эти потоки выполнения:

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

    означает, что cpu0 является одним из 4 потоков в физическом компоненте (процессоре), число 0, и это в ядре 0 среди 2 в этом процессоре.

    Просто отвечая на ваш первый вопрос. На выходе cat /proc/cpuinfo вы можете увидеть следующую информацию: –

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

    Вы можете видеть, что количество siblings is 4 и siblings is 4 а cpu cores is 2 . cpu cores 2 – это общее количество ядер в процессоре, которое можно проверить из спецификации, указанной в 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 boost или нет, вы можете детали freq на выходе lscpu . И для уточненного выпуска: –

     lscpu | grep Hz 

    Вы можете попробовать это в терминале:

    sudo lscpu

    Это даст вам обзор физической характеристики вашего процессора. Что касается турбонаддува или нет, это чисто аппаратный контроль, чем сама ОС, поэтому, если у Intel нет конкретных драйверов для Linux, которые могут настраивать скорость вашего процессора, нет надежного контроля над состоянием форсирования турбонаддува (если нет командного кода для проверьте другие форумы, если есть какие-либо подсказки относительно вашего вопроса).

    Что касается меня, это то, что я получаю, когда набираю приведенную выше команду. Мой AMD сказал, что это четырехъядерный процессор, но в моем физическом ядре здесь всего 2, с 2 потоками на ядро ​​(добавлено до 4 ядер). Я использую процессор AMD A10 APU 5750m.

     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 

    Загрузка системы и процессор% – это два разных способа измерения мощности вашего процессора.

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

    Обе меры связаны, но никоим образом не идентичны.