본문 바로가기

Skills/mY Technutz

OS에서 물리적 CPU, 코어수, HT 알아내기.

갑자기 회사엔지니어 한분이 사무실 들오오셔서 이슈화 시켰다...

물리적 CPU 개수와 코어 수를 알고싶다는 고객이 있다는것...

/proc/cpuinfo 에대한 분석을 얘기했으나,

믿을 수 있는 방법이나 정확한 항목이 필요했다...

엔지니어들마다 의견이 분분하고, 서로가 서로의 말을 헛가려서 해대고....

한참 뒤 몇대의 서버들을 살펴 본 결과 나온 결론..

physical_id 값은 물리적 CPU 에 고유하다. 즉 id값 당 CPU 1개 이다.

sibling 값은 CPU 에들어가는 Logical CPU 값이다.

cpu_core 는 물리적 CPU 의 코어 개수이다.

HT 는 sibling 값을 cpu_core 로 나눠 1이면 Non -HT,

2의 배수 면 HT 인 것이다.

몇가지 예를 들자면,

Single CPU, Single Core, Non-HT 일 경우,
 -> Processor : 0
     Physical_id : 8
 대략 이렇게 sibling 과 코어값이 없다. 결과는 1 CPU 1Core

Single CPU, Single Core, HT 일 경우,
 -> Processor : 0 1
    Physical_id: 0 0
    sibling :      2 2
    core_id :     0 0
    cpu_cores:  1 1

Single CPU, Dual Core, Non-HT 일 경우,
 -> Processor : 0  1
     physical_id: 0  1
     sibling :     2  2
     core_id:     0  1
     cpu_cores:  2  2

Dual CPUs, Single Core, HT
 -> Processor: 0  1  2  3
   physical_id: 0  0  1  1
   sibling  :     2  2  2  2
   core_id  :   0  0  0   0
   cpu_cores:  1  1  1   1

Dual CPUs, Dual-Core, Non-HT
 -> Processor : 0   1   2   3   4   5   6   7
    physical_id: 0   0   0   0   1   1    1   1
    sibling      : 2   2   2   2   2  2   2   2
    core_id     :  0   0   1   1   2  2   3    3
    cpu_cores :  2   2   2   2   2  2   2  2

뭐 대략 이런식이니까 대강 보면 이해 가실것이다...

참고로 간단한 스크립트...

'Skills > mY Technutz' 카테고리의 다른 글

vSphere4 Data-Recovery 설정 작업...  (0) 2009.08.05
RHEL 시리즈에서 Qmail 설치  (0) 2009.07.19
간략 sar 이용법  (0) 2009.04.06
User의 명령들을 남겨보자...  (1) 2008.11.22
USB에 LiveCD 올리기  (0) 2008.10.14