모든 스레드 코어가 표시되지 않는 문제를 해결하는 방법

모든 스레드 코어가 표시되지 않는 문제를 해결하는 방법

운영체제에서 읽을 수 있는 CPU 스레드 개수에 대해 문의하고 싶습니다. 이 질문은 코어 스레드를 확인하는 방법에 대한 질문이 아니라 코어가 표시되지 않는 문제를 해결하는 방법에 대한 것입니다.

서버 사양

  • HPE dl360p 8세대
  • CPU: E5-2680 v2 2개
  • 데비안 프록시목스
  • Bios에서 하이퍼스레딩 활성화

스레드 CPU는 코어 20개에 스레드 40개로 되어 있는데 확인해보니 스레드가 20 lscpu개만 cat /proc/cpuinfo 표시됩니다.

서버를 다시 시작하기 전에 스레드는 여전히 40을 읽었고 다시 시작한 후에는 20만 읽었습니다.

모든 스레드를 표시할 수 있는 아이디어가 있습니까?

답변1

하이퍼스레딩은 Linux 운영 체제를 통해서도 비활성화할 수 있습니다. 시스템에 이미 초기 해결 방법이 적용된 경우Spectre 가족의 ZombieLoad 공격, 운영 체제 수준 하이퍼스레딩 비활성화가 포함될 수 있습니다. 해결 방법은 시스템을 부팅할 때 적용됩니다.

Run cat /sys/devices/system/cpu/smt/active: 반환되면 0하이퍼스레딩이 활성화되지 않은 것입니다. cat /sys/devices/system/cpu/smt/control재부팅하지 않고도 하이퍼스레딩을 다시 활성화할 수 있는지 여부를 나타냅니다.

nosmt=force부팅 옵션을 추가하거나 실행하여 비활성화한 경우 echo forceoff > /sys/devices/system/cpu/smt/control비활성화 옵션/명령을 찾아서 제거한 후 시스템을 재부팅하여 하이퍼스레딩을 다시 활성화해야 합니다.

(= Nor가 아님) cat /sys/devices/system/cpu/smt/control이라고 표시 되면 재부팅하지 않고도 하이퍼스레딩을 다시 활성화할 수 있습니다 .offforceoffnotsupportedecho on > /sys/devices/system/cpu/smt/control

원천:서버 장애에 관한 질문입니다.그리고커널 문서.

반면, HP 프로라이언트 DL360p Gen8은 2012년에 출시되어 2016년에 단종되었으므로 현재는예상 사용 수명이 거의 끝나가고 있습니다.시스템이 수명의 대부분을 실행한 경우 시스템을 다시 시작할 때 CPU 중 하나에 오류가 발생했을 가능성이 있습니다.

관련 정보