최신 PSTATE 드라이버에서 *일정한* 최소 CPU 주파수를 설정할 수 있습니까?

최신 PSTATE 드라이버에서 *일정한* 최소 CPU 주파수를 설정할 수 있습니까?

새로운 Intel 드라이버는 사용 가능한 가장 낮은 CPU 주파수를 설정하고 몇 시간 또는 며칠 동안 조용하고 차가운 노트북에서 수치 시뮬레이션을 실행할 수 있게 해주는 pstate기존 거버너를 제거했기 때문에 나를 영원히 화나게 합니다 . powersave더 나쁜 것은 그들이 지금 말하는 것은 powersave본질적으로 오래된 거버너 ondemand, 부하에 따라 CPU 주파수가 상승하는 모드, 그리고 그에 수반되는 망할 팬 소음입니다.

이러한 정책은 드라이버에서 구현되기 때문에 cpufreq sysfs(scaling_governors)에서 동일한 이름을 갖고 있더라도 cpufreq 스케일링 거버너와 다르게 구현됩니다. 예를 들어, "성능" 정책은 cpufreq(TM) "성능" 거버너와 유사하지만 "powersave"는 cpufreq "powersave" 거버너와 완전히 다릅니다. 여기서 전략은 요청된 P-상태가 시스템 로드와 관련된 cpufreq "ondemand"와 유사합니다.

(에서 발췌https://www.kernel.org/doc/Documentation/cpu-freq/intel-pstate.txt)

이제 CPU 주파수를 가능한 한 낮게 유지하는 다른 방법이 있습니까? 이것은 나에게 정말 중요합니다. 일정한 최소 CPU 주파수를 설정할 수 없게 된다면 노트북을 창밖으로 내던지는 편이 나을 것입니다. 이것이 제가 노트북을 사용하는 방식이고, 이것이 바로 제가 노트북을 원하는 이유이며, 저는 며칠 동안 그것을 실현하기 위해 노력해 왔습니다!

나는 이것을 시도하고 있지만 작동하지 않습니다.

echo 42 | sudo dd of=/sys/devices/system/cpu/intel_pstate/max_pref_pct

최대 속도를 42%로 설정해도 효과가 없습니다. 작업을 할 때마다 CPU가 100%로 유지됩니다. 내가 뭘 잘못했나요? (일부 서비스 등을 다시 시작해야 합니까?)

이것을 얻을 수 있는 방법이 있나요? 또한 Intel이 아닌 CPU를 사용하여 이 작업을 수행할 수 있습니까? 문제를 해결하기 위해 다른 노트북을 구입해도 괜찮습니다.

답변1

글쎄, 새로운 Intel 드라이버는 훌륭하다는 것이 밝혀졌지만 pstate먼저 약간 오래되고 잃어버린 기술을 연습해야 합니다.설명서를 읽어보세요.

인터넷에서 본 모든 슬픔과 좌절로 판단해 볼 때, 제가 이 문제를 겪은 첫 번째 사람은 아니기 때문에 질문을 계속 열어 두겠습니다.

새 CPU 드라이버에는 많은 옵션이 있지만 나에게는 충분하고 만족스러운 몇 가지 간단한 옵션으로 설명을 제한하겠습니다. 첫 번째:

sudo apt-get install linux-cpupower

(또는 데비안 기반이 아닌 배포판에서는 이에 상응함)

이제 이름이 있는 2개의 동작(거버너)이 있지만 이러한 거버너는 이전 드라이버에서 동일한 이름을 powersave가진 performance동작과 아무 관련이 없기 때문에 이는 매우 불행한 명명 체계입니다.

  • powersave지금을 의미한다부하에 따라 가변 주파수, 즉 이것은 본질적으로 이전 ondemand주지사입니다. 최소 및 최대 주파수를 설정할 수 있습니다. 최대 주파수가 CPU가 수행할 수 있는 최대 주파수(기본값이라고 생각함)로 설정되면 비용이 절약되지 않습니다. 최소 주파수를 두 번째로 높은 값으로 늘릴 수도 있으며 결과적으로 CPU는 연중무휴 거의 최고 속도로 실행되고 거버너의 이름은 그대로 유지됩니다.에너지 절약. 사용자 간의 많은 혼란을 피하고 개발자가 잘못 보고한 많은 커널 버그를 방지하기 위해 이 거버너의 이름을 VARIABLE 또는 이와 유사한 이름으로 지정해야 합니다.

  • performance여기서 의미부하에 관계없이 주파수가 일정함, 이는 사용자가 설정한 최대값에 따라 달라집니다. 이 레귤레이터가 설정되면 가장 낮은 주파수는 무시되고 CPU는 사용자가 설정한 가장 높은 주파수에서 실행됩니다. 이로 인해 매우 낮은 주파수를 설정하면 특별한 성능이나 아무것도 볼 수 없으며 일정한 주파수에서 CPU가 느려질 것입니다. 따라서 그들은 이전 방식에 익숙한 저와 같은 많은 사람들을 좌절시키지 않도록 이 주지사의 이름을 CONSTANT 또는 이와 유사한 이름으로 지정하는 것이 좋습니다.

최소한 커널 4.14에서는 매우 유용한 몇 가지 예가 있습니다. CPU의 최소 및 최대 주파수 값인 0.4GHz와 3.1GHz를 사용하겠습니다. 보기cpupower frequency-info

모든 코어는 일정한 최소 주파수를 유지합니다.

이것이 내가 원하는거야! 이는 정주파 조정기를 설정하고 사용 가능한 가장 낮은 주파수를 최대값으로 설정하여 얻을 수 있습니다.

sudo cpupower frequency-set -g performance
sudo cpupower frequency-set -u 400MHz

모든 코어는 일정한 최대 주파수를 유지합니다.

(이 질문은 데스크탑 컴퓨터에서 많이 묻는다는 것을 알게 될 것입니다. 노트북 팬을 기꺼이 파괴하려는 사람들이 있지만 이는 의미가 있습니다.)

sudo cpupower frequency-set -g performance
sudo cpupower frequency-set -u 3100MHz

모든 코어에 대해 가능한 최소 및 최대 주파수 사이의 가변 주파수

(이것은 ... 불리운다주문형오래된 acpi-cpufreq운전자와 함께)

sudo cpupower frequency-set -g powersave
sudo cpupower frequency-set -d 400MHz
sudo cpupower frequency-set -u 3100MHz

모든 코어에 대해 최저 주파수와 중간 주파수 사이의 가변 주파수

(필요할 때 더 빠른 속도를 원하지만 최대 속도에 도달하고 팬이 미친 듯이 부는 소리를 듣고 싶지 않기 때문일 수도 있습니다)

sudo cpupower frequency-set -g powersave
sudo cpupower frequency-set -d 400MHz
sudo cpupower frequency-set -u 1200MHz

등. 매우 간단하고 정말 잘 작동합니다. 또한 무거운 디지털 콘텐츠를 실행하는 한 코어에서는 일정한 저주파를 유지하고 보다 일반적인 콘텐츠(이메일, 웹 브라우징...)가 실행되는 다른 코어에서는 가변 주파수를 유지할 수도 있습니다. 자세한 내용은 을 참조하세요 taskset.

답변2

그것은 나를 위해 작동합니다:

echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct

CPU 로드가 100%이면 50% 성능/속도로만 실행됩니다.

답변3

(과학 실험을 위해) 일정한 주파수를 설정하는 방법을 찾기 위해 여러 날을 낭비한 후 마침내 포기했습니다. 저는 performance주지사(메피스토가 제안한 대로), intel_pstate 드라이버의 active모드를 변경하고 passive, PPC 보호를 비활성화하고, intel_pstate에서 acpi-cpufreq로 전환하는 등의 작업을 수행합니다.

이러한 옵션 중 어느 것도 일정한 주파수 설정에 영향을 미치지 않습니다. 그때 나는 그랬다커널 문서:

현세대 Intel 프로세서의 경우 주파수는 프로세서 자체에 의해 제어되며 소프트웨어에 의해 노출되는 P 상태는 성능 수준과 관련됩니다. Intel Core 프로세서의 경우 주파수를 단일 주파수로 설정할 수 있다는 아이디어는 허구입니다. 스케일링 드라이버가 단일 P 상태를 선택하더라도 프로세서가 실행되는 실제 주파수는 프로세서 자체에서 선택됩니다.

그래서,이를 수행하는 신뢰할 수 있는 방법은 없습니다.,P 상태는 권장 사항일 뿐이며 하드웨어는 계속해서 자체적으로 결정을 내립니다. 내 프로세서(Intel J4105)에서 하드웨어는 소프트웨어의 설정을 완전히 무시하는 것 같습니다.

관련 정보