본문 바로가기

Linux is..../My Skills

O/S상에서 물리적인 CPU 갯수 확인해보자

/proc/cpuinfo는 현재 시스템의 CPU 상황을 알려주는 가장 기본이 되는 정보이다.

다양한 필드들이 라인별로 구별되어 있으며, 쉽게 해석할 수 있으므로 몇가지 정보만 살펴보도록 하겠다.

물리적인 CPU의 갯수를 알려면?

$ grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l

이것은 physical id 부분의 값을 모두 찾아내서 ID 값이 같은 것들은 하나로 묶어서 전체 라인의 수를 반환한다. uniq를 사용한 이유는 듀얼 코어 같은 경우 물리적인 CPU는 한 개이지만 두개로 보이기 때문이다.


가상 CPU의 총 갯수는?

$ grep ^processor /proc/cpuinfo | wc -l

내부적으로 작업할 때 인식하는 가상 CPU의 총 갯수를 나타낸다. 듀얼 코어인 경우 위의 물리적인 값이 1이더라도 이 값은 2가 될 수 있다.

해당 시스템이 듀얼 코어인가?

$ grep 'cpu cores' /proc/cpuinfo
cpu cores       : 2
cpu cores       : 2

'2'가 의미하는 것은 두개의 물리적인 프로세서들이 듀얼 코어임을 나타낸다. 

만약 '1'을 반환한다면, 각각이 싱글코어임을 나타낸다.  만약 싱글코어이면서 가상 프로세서의 수가 물리적인 프로세서의 수보다 많다면 CPU가 하이퍼스레딩을 사용하고 있는 것이다. 
하이퍼스레딩이 사용되는지를 확인하러면 flags 필드에서 'ht'가 있고 SMP 커널로 부팅했는지를 확인하면 된다.