/ proc / cpuinfo의 프로세서 수


26

CPU로드에 대해 배우는 동안 코어 수에 달려 있음을 알게되었습니다. 코어가 2 개인 경우로드 2는 100 % CPU 사용률을 제공합니다.

그래서 코어를 찾으려고 노력했습니다 (시스템에는 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 %였습니다.

터보 부스트는 어떻습니까? 모든 코어가 터보 부스트입니까, 아니면 물리적 인 것입니까?

프로세서가 터보 부스트 상태인지 여부를 확인하기 위해 현재 CPU 주파수를 얻는 우분투의 방법은 무엇입니까?

하중은 약 100 % 3.70이었다. 그러나 IO 응답 ​​시간으로 인해 CPU 사용량은 100 %가 아닙니다. 그렇다고 IO 장치가 최대 속도에 도달 한 것은 아니지만 io 장치가 100 % 사용 중이므로 IO ex를 사용하는 응용 프로그램에 영향을주는 경우가 있습니다. 음악이 끊길 수 있습니다.


2
하이퍼 스레딩이 2 대신 4를 표시하는 이유입니다.
derobert

1
documentation과 cpuinfo는 CPU 코어가 두 개라는 것을 알려줍니다. 프로세서 0과 1은 코어 0에 있고 프로세서 2와 3은 코어 1에 있습니다 (라인 참조 core id). 이 physical id칩을 제공합니다 (추측). 모든 프로세서에 대해 0이므로 하나의 칩만 있습니다.
lgeorget

그래서 프로세서로드는 100 % ... 2 또는 4입니까?
Madhurendra Sachan

여기 프로세서 란 무엇입니까?
Madhurendra Sachan

인텔의 스레드 정의 ( "스레드 또는 실행 스레드 는 단일 CPU 코어를 통해 전달되거나 처리 될 수있는 기본 주문 순서 명령에 대한 소프트웨어 용어 ")는 2 개의 코어로 생각할 수 있습니다. 사양에 명시된 바와 같이 4 개의 스레드, 2x4 = 8 스레드가 실행 중입니다. 인텔 ® 하이퍼 스레딩 기술의 정의가 명확 사실 당신은 총 4 개 스레드를 2 개 코어 (4)과 같이 : 그것은 "제공 물리적 코어 당 두 개의 프로세싱 스레드를 "당신의 시스템이 4 프로세서 / 형제 자매를 보는 것을 더 잘 설명 2 개의 CPU 코어 중 하나의 칩 탑재
XavierStuvw

답변:


35

“CPU”,“processor”및“core”라는 단어는 다소 혼란스러운 방식으로 사용됩니다. 프로세서 아키텍처를 나타냅니다. 코어는 범용 프로세서를 구현하는 가장 작은 독립 장치입니다. 프로세서는 코어의 조합입니다 (일부 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에 있습니다.


멋진 설명 당신은 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 어떤 프로그램에서“cpu load가 3.70”이라고보고 했습니까? 로드 평균을 의미합니까? "cpu가 <50 %였다"는 무슨 뜻입니까? 터보 부스트에 관해서는, 나는 그것에 익숙하지 않지만, 왜 그들이 모두 부스트되지 않을지는 모르겠습니다. 가상 머신에서 실행하지 않는 한 모든 코어 물리적입니다.“가상 코어”에서 설명하는 것처럼 가상 코어는 분리되지 않습니다.
Gilles 'SO- 악한 중지'

평균 하중. uptimeCPU에 의해 나는 CPU 사용을 의미했다. 그러나 주파수를 확인하거나 CPU가 터보 부스트인지 확인하는 방법은 무엇입니까?
Madhurendra Sachan

또한 높은 수준의 소프트웨어 측면에서, 당신은 오히려 관심, 즉를 주장 프로세스 (참조 top, uptime). 프로세스를 처리하는 하드웨어 장치는 궁극적으로 저수준 소프트웨어 (컴파일, 운영 체제)의 문제입니다. cpuinfo 보고서는 각 물리적 프로세서 (다수의 CPU 중 하나)가 멀티 스레딩과 같은 기술 위업으로 컴퓨팅 능력을 확장 할 수 있다는 사실을 추상화합니다. 한 번에 하나의 프로세스를 처리 할 수있는 '모든 것'을 프로세서로 간주합니다. cpuinfo의 회계 분야에서 장치 기능은 총 "프로세서 수"로 이어집니다.
XavierStuvw

13

첫 번째 질문에 답하십시오. 출력 cat /proc/cpuinfo에서 다음 정보를 볼 수 있습니다.

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

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

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

업데이트 : 다른 질문에 대한 답변 추가.

터보 부스트는 어떻습니까? 모든 코어가 터보 부스트입니까?

모든 활성 코어는 터보로 강화됩니다. 친구, 사랑하는 Wikipedia 의 예제를 확인 했어야합니다 . 계산도 설명했다.

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

터보 부스트 여부는의 출력에서 ​​주파수 세부 사항을 할 수 있습니다 lscpu. 그리고 세련된 출력을 위해 :-

lscpu | grep Hz

짧고 빠른 답변이지만 나머지 3을 설명 할 수 있습니까?
Madhurendra Sachan

@MADTerry 고마워하지만 명확하지 않은 다른 사람들은 연구를하고 내 답변을 편집 할 것입니다. 한편 다른 사람이 팝업되는지 확인합니다.
초보자

1
lscpu명령 +1
Arda

8

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

sudo lscpu

CPU 물리적 특성에 대한 개요를 제공합니다. 터보 부스트에 관해서는, 이것은 OS 자체보다 하드웨어 제어입니다. 따라서 인텔이 프로세서 속도를 조정할 수있는 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

0

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

  • 시스템로드 : CPU 당 "준비"상태에 있었던 프로세스 수-시간이 지남에 따라 평균. 최대 1 * CPU (귀하의 경우 최대 4) 시스템은 거의 유휴 상태로 간주됩니다 (평균 체크 아웃마다 한 명의 고객 만 기다리는 슈퍼마켓과 비교). 최대 2 * cpu (경우에 따라 8)까지 지연이 발생하지 않을 수 있습니다.
  • CPU % : 프로세스를 실행하여 CPU가 실제 작업을 수행하는 시간 계산원의 견해 나 감독자의 관점과 마찬가지로 항상 바쁘기를 원합니다.

두 방법 모두 관련이 있지만 동일하지는 않습니다.


나는 다른 질문을하지 않았다. 이미 기사에서 읽었습니다. 어쨌든 당신의 대답은 Gilles의 대답과 모순됩니다.
Madhurendra Sachan

모순이 어디에 있습니까?
guntbert
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.