/proc/cpuinfo의 프로세서 수

/proc/cpuinfo의 프로세서 수

CPU 부하를 연구해보니 코어 수에 따라 달라진다는 사실을 발견했습니다. 코어가 2개 있는 경우 2개를 로드하면 CPU 사용률이 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:

이제 나는 완전히 혼란스러워졌습니다. 2개의 CPU 코어가 있는 4개의 프로세서를 보여줍니다. 누구든지 이 출력을 설명할 수 있습니까?

내 CPU 로드가 3.70이면 이것이 최대 로드입니까? 그 당시 CPU는 여전히 50% 미만이었습니다.

터보차저는 어떻습니까? 모든 코어가 터보 가속인가요, 아니면 물리적 코어인가요?

Ubuntu에서 프로세서가 터보 가속 상태에 있는지 확인하기 위해 현재 CPU 주파수를 얻을 수 있는 방법이 있습니까?

부하는 3.70으로 약 100%입니다. 그러나 IO 응답 ​​시간으로 인해 CPU 사용량이 100%에 도달하지 않습니다. 이는 IO 장치가 최대 속도에 도달한다는 의미는 아니지만 IO 장치가 100% 사용 중이므로 때로는 IO를 사용하는 응용 프로그램에 영향을 미칠 수 있습니다. 예를 들어 음악이 중단될 수 있습니다.

답변1

"CPU", "프로세서" 및 "코어"라는 단어는 다소 혼란스러운 방식으로 사용됩니다. 이는 프로세서 아키텍처를 나타냅니다. 코어는 범용 프로세서를 구현하는 가장 작은 독립 장치입니다. 프로세서는 코어 모음입니다. 일부 ARM 시스템에서는 프로세서가 클러스터 모음이고 클러스터 자체가 코어 모음입니다. 칩에는 하나 이상의 프로세서가 포함될 수 있습니다. 즉, x86 칩에는 프로세서가 포함되어 있습니다.프로세서).

하이퍼스레딩은 코어의 특정 부분이 복제되는 것을 의미합니다. 하이퍼스레딩이 포함된 코어는 때때로 두 개의 "가상 코어"의 조합으로 표시됩니다. 이는 모든 코어가 가상이 아니라는 의미이지만 복수형은 코어가 실제로 별도의 코어가 아니기 때문에 때로는 다른 코어를 기다려야 하는 경우도 있습니다. 달리는 것. 공유 섹션을 활용하세요.

소프트웨어에 관한 한 거의 어디에나 존재하는 개념은 단 하나뿐입니다. 바로 병렬 실행 스레드 개념입니다. 따라서 대부분의 소프트웨어 매뉴얼에서는 이러한 용어를 사용합니다.CPU그리고프로세서프로그램 코드를 실행하는 하드웨어를 나타내는 데 사용됩니다. 하드웨어 측면에서 이는 하이퍼스레딩이 포함된 코어 또는 가상 코어를 의미합니다.

동시에 top4개의 스레드를 실행할 수 있으므로 4개의 CPU가 표시됩니다. /proc/cpuinfo(그런 의미에서) 각 CPU마다 하나씩 총 4개의 항목이 있습니다. 이 숫자(즉, processor의 항목 수)는 4개의 스레드에 해당합니다.cpuNUMBER/sys/devices/system/cpu

/proc/cpuinfo어떤 하드웨어가 이러한 실행 스레드를 구현하는지에 대한 정보를 얻을 수 있는 몇 안되는 장소 중 하나입니다.

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

이는 cpu0물리적 구성 요소 0(프로세서) 내의 4개 스레드 중 하나이며 해당 프로세서의 2개 코어 중 0번째 스레드에 있음을 의미합니다.

답변2

첫 번째 질문에 답해드리겠습니다. 출력에서 cat /proc/cpuinfo다음 정보를 볼 수 있습니다.

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

siblings is 4합계의 개수를 볼 수 있습니다 cpu cores is 2. cpu cores2는 프로세서의 총 코어 수이며, 귀하가 제공한 인텔 URL에 제공된 사양에서 확인할 수 있습니다. 마찬가지로 siblingsIntel의 HTT는 스레드 수에 따라 결정되는 HTT를 제공합니다.

마찬가지로 물리적 ID의 경우 0프로세서 칩이 하나만 있음을 의미하는 반면, 코어 ID의 경우 0 and 1프로세서에 코어가 2개 있음을 알 수 있습니다.

고쳐 쓰다:다른 질문에 대한 답변을 추가하세요.

터보차저는 어떻습니까? 모든 코어가 터보 가속인가요, 아니면 물리적 코어인가요?

글쎄요, 모든 활성 코어는 터보차저로 작동됩니다. 이봐, 우리 사랑하는 사람의 예를 좀 봐봐위키피디아. 또한 계산을 사용하여 설명합니다.

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

터보 여부에 관계없이 출력에서 ​​주파수 세부 정보를 볼 수 있습니다 lscpu. 세련된 출력의 경우:-

lscpu | grep Hz

답변3

터미널에서 이것을 시도해 볼 수 있습니다:

sudo lscpu

이는 CPU의 물리적 특성에 대한 개요를 제공합니다. Turbo Boost 여부는 운영 체제 자체가 아닌 순전히 하드웨어 제어이므로 Intel에 프로세서 속도를 조정할 수 있는 Linux용 특정 드라이버가 없으면 Turbo Boost 상태를 확인할 수 있는 신뢰할 수 있는 방법이 없습니다. 문제에 대한 단서가 있으면 다른 포럼에서 코드를 확인하는 명령입니다.

저에게는 위의 명령을 입력하면 이것이 표시됩니다. 내 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

답변4

시스템 로드와 CPU%는 CPU 전력 사용량을 측정하는 두 가지 방법입니다.

  • 시스템 로드: CPU당 "준비"된 프로세스 수 - 시간 경과에 따른 평균입니다. 최대 1*cpu(귀하의 경우 최대 4개) 시스템은 거의 유휴 상태로 간주됩니다(평균적으로 결제당 대기하는 고객이 한 명뿐인 슈퍼마켓과 비교). 최대 2*cpu(귀하의 경우 8)까지 대기 시간이 발생하지 않을 것입니다.
  • cpu%: 프로세스를 실행하여 CPU가 실제로 작동한 시간입니다. 계산원의 관점, 아니 오히려 감독자의 관점에서는 그들이 항상 바쁘기를 바라는 것과 같습니다.

두 측정값은 서로 관련되어 있지만 동일하지는 않습니다.

관련 정보