본문 바로가기
CS/OS

[linux] CPU 코어 및 쓰레드 수 확인하기

by judy@ 2023. 1. 20.

보통 Mac OS에서는 "내 컴퓨터에 관하여" 등에서 CPU 스펙에 관한 정보를 얻을 수 있는데, linux os 에서는 어떻게 확인할 수 있을까?

 

CPU 의 경우, 크게 다음과 같은 정보를 얻을 수 있다.

- 물리적 칩의 개수: 말그대로 칩의 개수

- 코어 개수: 칩이 보유하고 있는 CPU 코어의 총합

- 쓰레드 개수: 하이퍼쓰레딩을 포함하여 활용 가능한 쓰레드의 총합

 

1. 물리적 칩의 개수

아래를 통해 물리적 칩은 2개임을 알 수 있음.

 

- 칩 개수: 2

$ grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
2
$ grep 'physical id' /proc/cpuinfo | sort | uniq
physical id	: 0
physical id	: 1

2. 코어 개수

아래를 통해 코어의 개수는 12개 임을 알 수 있다. 이는 총량은 아니고, 위의 물리적 칩이 2개 있는데, 각각이 12 코어를 보유하고 있다는 의미로 실제로 코어 개수의 총합은 24이다.

 

- 총 코어 개수: 2 (chips) x 12 (cores) = 24

$ cat /proc/cpuinfo | grep 'cpu cores' |sort | uniq
cpu cores	: 12

3. 쓰레드 개수

코어의 총 개수는 24이지만, 각 코어에 하이퍼쓰레딩이 enable 되어 있는 경우, 코어 수와 쓰레드 수가 다를 수 있다. 본 예제에서는 48이므로 하이퍼쓰레딩이 enable 되어있음을 간접적으로 알 수 있다.

 

- 총 쓰레드 개수: 2 (chips) x 12 (cores) x 2 (hyperthreading) = 48

$ cat /proc/cpuinfo | grep -c processor
48

 

하이퍼쓰레딩 적용 여부를 확인하는 방법

위에서 처럼 이는 전체 코어 수가 아니라 하나의 칩에 대한 코어 및 시블링 정보인데, 아래를 통해 cpu cores 수 x 2 를 하면 siblings가 되는 것을 보아, 하이퍼쓰레딩이 enable 되어 있음을 확인할 수 있다. 두 값이 같다면 코어수와 쓰레드수가 같을 것!

$ cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2
siblings	: 24
cpu cores	: 12
반응형