동일한 OS, 동일한 코어, 동일한 CPU 주파수를 실행하는 두 대의 컴퓨터가 있습니다.스케일 드라이브, 그리고 동일한 CPU 주파수 스케일링 조정기입니다.
프로세스가 하나의 코어를 고정하면 모든 코어 주파수가 증가합니다.
코어를 고정하는 프로세스가 있는 경우 하나의 물리적 코어만 승격됩니다.
기계 A
CPU: Intel(R) Xeon(R) W-2140B CPU @ 3.20GHz
Scaling driver: intel_pstate
Scaling governor: powersave
OS: Ubuntu 21.10
Kernel: 5.13.0-22-generic
기계 B
CPU: 11th Gen Intel(R) Core(TM) i5-11600K @ 3.90GHz
Scaling driver: intel_pstate
Scaling governor: powersave
OS: Ubuntu 21.10
Kernel: 5.13.0-22-generic
다음 예를 관찰하세요.
머신 A에 두 개의 코어를 고정합니다. (이 머신에는 하이퍼스레딩이 있으므로 사용 가능한 가상 코어 16개 중 4개를 확장할 수 있습니다.)
머신 B에 2개의 코어를 고정합니다. (이 머신에는 HT가 포함된 6개의 코어가 있고 12개의 가상 코어 모두로 확장됩니다.)
스크린샷은주파수 상단, 내가 직접 작성한 오픈 소스 주파수 모니터입니다. 주황색 체크 표시는 전체 주기(사용자+커널+유휴)에 대한 사용자+커널 주기의 백분율로 정의된 각 코어의 로드를 표시합니다.
코어가 하나만 필요함에도 불구하고 i5-11600K CPU가 모든 코어를 조절하는 이유는 무엇입니까?
고쳐 쓰다:머신 간에 발견된 한 가지 차이점은 pstate의 수입니다.
Xeon은 /sys/devices/system/cpu/intel_pstate
33으로 설정되어 있고 corei5는 42로 설정되어 있기 때문입니다. 이것의 요점이 무엇인지 잘 모르겠습니다.
답변1
Intel CPU에는 코어 제한을 처리하는 여러 가지 방법이 있습니다. 이 모든 것을 배우는 것은 매우 기술적입니다. 대부분의 사람들은 자신이 사용하는 CPU에 대해서만 알고 있습니다. 그러나 이러한 다른 결과를 제공하는 것은 펌웨어(BIOS, UEFI) 및/또는 프로세서의 내부 구조에서 허용하는 제어 수준이라고 확신합니다.
Debian Bullseye를 실행하지만 프로세서가 다른 두 대의 컴퓨터에서 동일한 현상이 나타납니다. 때로는 $ powertop
진실이 밝혀질 수도 있습니다. 그 목적은 노트북의 전력 소비량을 조정하는 것이지만 데스크톱에 표시되는 정보는 여러 가지 이유로 흥미롭습니다.
커널이 터보 모드에서 실행 중인지, 얼마나 조절되는지 등을 확인하기 위해 powertop을 사용했습니다. AMD에서도 작동합니다.
그 모니터에 대해서는 이미 글을 쓰셨으니 아마 이 주제에 대해서는 저보다 더 많이 아시는 것 같군요.
이 포럼은 자료가 너무 광범위하고 기술적이기 때문에 많은 세부 사항을 논의하는 데 적합하지 않습니다. 이게 도움이 되길 바란다.
답변2
저는 corei5 시스템이 더 적절하게 작동하도록 할 수 있었고 실제로 작업하는 코어의 주파수만 높일 수 있었습니다.
이렇게 하려면 intel_pstate 드라이버 모드를 전환해야 한다는 것을 알았습니다.
당신은 /sys/devices/system/cpu/intel_pstate/status
사이를 전환 할 수 있습니다긍정적인그리고수동적인모델.
활성 모드: 이 모드에서 드라이버는 CPUFreq의 스케일링 조절기 레이어를 우회하고 P 상태 선택을 위한 자체 스케일링 알고리즘을 제공합니다.
패시브 모드: ...드라이버는 일반 CPUFreq 스케일링 드라이버처럼 작동합니다. 즉, 범용 스케일링 조정기는 CPU의 P 상태를 변경하기 위해 하드웨어와 통신해야 할 때 이를 호출합니다.
만약 내가이것을 읽어보세요맞습니다. 활성 모드에서는 CPU가 OS 자체로부터 피드백을 덜 받는 것 같습니다. CPU가 모든 코어를 조절해야 한다고 잘못 추측한 것 같습니다.
아직 설명되지 않은 점은 Xeon CPU가 다음에서 매우 뛰어난 성능을 발휘한다는 것입니다.긍정적인이동에는 동일한 intel_pstate 드라이버를 사용하십시오. 하지만 이는 단지 추측일 뿐이며 모든 CPU가 동일한 것은 아닙니다. 또는 pstate를 올바르게 수행할 수 없는 의심스러운 마더보드나 BIOS일 수도 있습니다.