Redhat Enterprise 7.5 커널 3.10.0-862.el7의 가변 CPU 코어 필드는 무엇입니까?

Redhat Enterprise 7.5 커널 3.10.0-862.el7의 가변 CPU 코어 필드는 무엇입니까?

/proc/cpuinfo"cpu 코어" 필드가 자주 다른 값을 내보내는 한 서버에서 이상한 동작이 발생합니다 . /proc/cpuinfo정확하게는 8개의 CPU(1개의 물리적 x 4개의 코어 x 2개의 하이퍼스레드)가 있지만 CPU-cores 필드는 4(정확함) 또는 65531, 65528, ...(덜 정확함)일 수 있습니다. 잘못된 숫자를 보고하는 동일한 가상 CPU인 것 같습니다.

우리는 왜 관심을 갖나요? 글쎄요, 타사 라이브러리 중 하나가 /proc/cpuinfo라이센스에 지문을 사용하고 있으므로 코어 수가 변경되기 때문에 결함이 있습니다.

  • 이거 본 사람 있어?
  • 이것이 하드웨어 버그인지 OS 버그인지 아시나요?
  • 문제를 진단하고 해결하는 방법에 대한 제안 사항이 있습니까?

정보를 제공해 주셔서 감사합니다.


다음은 출력의 예입니다 /proc/cpuinfo.

cpu cores   : 4
cpu cores   : 20
cpu cores   : 20
cpu cores   : 20
cpu cores   : 4
cpu cores   : 4
cpu cores   : 4
cpu cores   : 65528

답변1

모든 정보를 갖고 있지는 않지만 현재는 Linux 커널 버그처럼 보입니다. 이것은github에 제출이 문제를 해결하기 위해 수행되는 것 같습니다. 라벨에는 이 수정 사항이 4.16.X 커널에 있음을 나타내는 것 같습니다. 제출된 의견은 다음과 같습니다.

이 수정 사항이 없으면 /proc/cpuinfoCPU 코어를 오프라인으로 전환한 후 다시 온라인으로 전환한 후 아래 예와 같이 잘못된 CPU 코어 수가 표시됩니다.

이 패치는 논리적 CPU를 종료할 때 항상 booted_cores 변수를 0으로 설정하여 이 문제를 해결합니다.

이는 "터보 부스트" 기능이 코어를 비활성화한다는 점에 대해서도 우려하고 있지만 상자가 때때로 절전 모드로 인해 발생하는 것으로 보입니다. 커널 업그레이드가 쉬운 옵션이 아니기 때문에 이제 이 문제를 해결할 수 있는 절전 및 최대 절전 모드를 끄고 있습니다.

지금까지 우리는 시도했습니다다음 그럽 설정어느아니요작동하는 것 같거나 적어도 컴퓨터가 최대 절전 모드로 전환되어 이 문제가 발생하는 것을 방지할 수는 없습니다.

intel_idle.max_cstate=0
processor.max_cstate=1

우리는 또한 이 페이지에 대해 찾았습니다.터보 부스트 비활성화.

관련 정보