내 시스템에 몇 개의 코어가 있는지 알고 싶어서 Google에서 같은 질문을 검색했습니다. 명령 과 같은 명령을 받았습니다 lscpu
. 이 명령을 시도하면 다음과 같은 결과가 나타납니다.
$ lscpu
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: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 23
Stepping: 10
CPU MHz: 1998.000
BogoMIPS: 5302.48
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 2048K
NUMA node0 CPU(s): 0-3
특히 이 출력은 다음을 보여줍니다.
- CPU: 4
- 소켓당 코어 수: 4
- CPU 시리즈: 6
다음 중 Linux 시스템의 핵심을 나타내는 것은 무엇입니까?
코어 수를 알 수 있는 다른 명령이 있습니까, 아니면 완전히 잘못되었다고 가정합니까?
답변1
전체 그림을 얻으려면 수량을 살펴봐야 합니다.실각 코어,핵심각 콘센트와소켓. 이 숫자들을 곱하면,CPU귀하의 시스템에서.
CPU = 코어당 스레드 수 X 소켓당 코어 수 X 소켓
CPU는 실행 시 표시되는 것입니다 htop
(물리적 CPU와 동일하지 않음).
다음은 데스크탑의 예입니다.
$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s): 8
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
서버:
$ lscpu | grep -E '^Thread|^Core|^Socket|^CPU\('
CPU(s): 32
Thread(s) per core: 2
Core(s) per socket: 8
Socket(s): 2
출력은 nproc
CPU 개수에 해당합니다 lscpu
. 위 데스크톱의 경우 아래에 보고된 8개의 CPU와 일치해야 합니다 lscpu
.
$ nproc --all
8
의 출력은 /proc/cpuinfo
이 정보와 일치해야 합니다. 예를 들어 위의 데스크탑 시스템에는 8개의 프로세서(CPU)와 4개의 코어(코어 ID 0-3)가 있음을 볼 수 있습니다.
$ grep -E 'processor|core id' /proc/cpuinfo
processor : 0
core id : 0
processor : 1
core id : 0
processor : 2
core id : 1
processor : 3
core id : 1
processor : 4
core id : 2
processor : 5
core id : 2
processor : 6
core id : 3
processor : 7
core id : 3
보고된 내용은 cpu cores
보고된 내용과 /proc/cpuinfo
일치합니다 . 위 데스크톱의 경우 lscpu에서 보고한 소켓당 코어 4개와 일치해야 합니다.Core(s) per socket
lscpu
$ grep -m 1 'cpu cores' /proc/cpuinfo
cpu cores : 4
귀하의 질문에 구체적으로 대답하려면 소켓당 코어 수에 보유하고 있는 소켓 수를 곱하여 보유한 코어 수를 알 수 있습니다.
코어 수 = 소켓당 코어 수 X 소켓 수
위의 예시 시스템의 경우 데스크탑에는 4개의 코어가 있습니다.
$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 4
16개의 서버가 있습니다:
$ echo "Cores = $(( $(lscpu | awk '/^Socket\(s\)/{ print $2 }') * $(lscpu | awk '/^Core\(s\) per socket/{ print $4 }') ))"
Cores = 16
또 다른 유용한 유틸리티는 dmidecode
소켓별 정보를 출력하는 것입니다. 위에 나열된 서버 시스템의 경우 소켓당 8개의 코어와 소켓당 16개의 스레드가 예상됩니다.
$ sudo dmidecode -t 4 | grep -E 'Socket Designation|Count'
Socket Designation: CPU1
Core Count: 8
Thread Count: 16
Socket Designation: CPU2
Core Count: 8
Thread Count: 16
이 lscpu
명령에는 다음과 같이 확인해 볼 수 있는 유용한 옵션이 많이 있습니다.
$ lscpu --all --extended
$ lscpu --all --parse=CPU,SOCKET,CORE | grep -v '^#'
man lscpu
자세히보다.
간단히 말해서:
- 소켓, 코어, 스레드에 대해 알아야 할 사항
- CPU라는 용어는 상황에 따라 다른 의미를 가지므로 주의해야 합니다.
답변2
소켓 수와 소켓당 코어 수를 확인해야 합니다. 이 경우 4개의 코어(소켓당 여러 코어)가 있는 1개의 물리적 CPU(소켓)가 있습니다.
답변3
답변4
또한 이 명령을 사용하여 cat /proc/cpuinfo
각 코어에 대한 데이터 블록을 출력할 수도 있습니다. 각 블록은 다음 정보로 시작됩니다.
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 60
model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz
(...)
코어 번호는 0부터 시작하므로 마지막 블록이 processor : 3
이 예와 같으면 컴퓨터에 코어가 4개 있는 것입니다.