Linux에서 하이퍼스레딩이 감지되지 않습니다.

Linux에서 하이퍼스레딩이 감지되지 않습니다.

Intel Xeon E5645 CPU 2개가 있고 각각 6개의 코어가 있고 각 코어는 하이퍼스레딩되어 있습니다(즉, 2개의 가상 코어와 동일해야 함). 이 서버에 CentOS 6.2가 설치되어 있는데 총 24개의 가상 코어가 있어야 함에도 불구하고 12개의 코어만 감지하는 것 같습니다.

각 CPU를 보면 다음과 같은 결과를 /proc/cpuinfo얻습니다.

cpu cores: 6
siblings: 6

이는 코어 수가 가상 코어 수와 동일하거나 하이퍼스레딩이 감지/활성화되지 않았음을 나타내는 것으로 보입니다.

실행하면 dmidecodeHT 플래그가 켜져 있고 다음과 같은 내용이 표시됩니다. 이는 BIOS가 하이퍼스레딩에 맞게 올바르게 구성되었음을 나타내는 것 같습니다.

Core Count: 6
Core Enabled: 6
Thread Count: 12

Linux가 모든 가상 코어를 감지하기 위해 누락된 구성이 있습니까?

답변1

BIOS 설정을 확인했습니까? 즉, BIOS에서 하이퍼스레딩이 켜져 있지 않으면 작동하지 않습니다.

답변2

Linux 커널 구성에는 다음과 같은 옵션이 있습니다.

CONFIG_NR_CPUS

커널 문서에 설명되어 있습니다:

이를 통해 이 코어가 지원하는 최대 CPU 수를 지정할 수 있습니다. 지원되는 최대값은 512이고, 의미 있는 최소값은 2입니다.

이 값을 확인하고 필요한 경우 늘리십시오. 물론 나중에 커널을 다시 컴파일해야 합니다.

관련 정보