내 노트북(i3 칩이 장착된 HP)은 리소스 집약적인 프로세스(대규모 컴파일, 대규모 타르볼 추출, 플래시 재생 등)를 실행할 때마다 미친 듯이 과열됩니다.
현재 몇 가지 냉각 솔루션을 개발 중인데 글로벌 CPU 소비를 제한하는 아이디어가 떠올랐습니다. CPU가 조절되면 온도가 미친 듯이 상승하지 않을 것이라고 생각하며 작업을 완료하기 위해 약간의 성능을 희생할 의향이 있습니다.
- 내 추론이 잘못된 걸까요?
- 전체 CPU 사용량을 계속 제한하려면 어떻게 해야 합니까?
도움이 된다면 데비안을 사용하겠습니다.
답변1
언급되지 않은 또 다른 대안은 cpufrequtils
이미 내 노트북에 Debian 6을 설치하여 사용하고 있다는 것입니다. 알고리즘을 변경할 수 있습니다(지사, cpufrequtils
용어로) 코어는 부하에 따라 클록 주파수를 조정하는 데 사용됩니다. 특히 userspace
거버너를 사용하면 원하는 값으로 주파수를 잠글 수 있습니다(물론 CPU는 이 속도에서 실행될 수 있어야 합니다). .
예를 들어 Atom을 1.6GHz 대신 800MHz로 잠그는 데 사용했습니다. 사용하기가 매우 쉽습니다.
답변2
많은 해킹 없이 전체 시스템의 CPU를 제한하는 것이 가능한지는 모르겠지만 다음을 사용하면 단일 프로세스에서 사용하는 CPU의 양을 쉽게 제한할 수 있습니다.CPU 한도
내 생각에 이를 효과적으로 사용할 수 있는 유일한 방법은 리소스를 소비하고 있는 것으로 알고 있는 애플리케이션에 대한 래퍼 스크립트(실제로는 스크립트라고 부를 수 없으며 너무 작음)를 작성하는 것입니다. 예를 들어, google-chrome이 CPU를 많이 사용하는 경우 경로의 google-chrome 바이너리를 다음으로 바꿀 수 있습니다.
#! /bin/bash
cpulimit --limit 70 /usr/bin/google-chrome-bin
나는 이것을 아직 테스트하지 않았으므로 소금 한알로 가져 가십시오. cpulimit 웹사이트에서는 다양한 애플리케이션에 대한 CPU 제한 규칙을 설정할 수 있는 것으로 보입니다. 잘 모르겠습니다. 직접 확인하셔야 합니다.
답변3
스크립트를 사용하여 온도에 따라 CPU 코어를 자동으로 제한할 수 있습니다.임시 스로틀. 더 중요한 일에 집중하는 동안 백그라운드에서 실행할 수 있습니다. 실행 방법에 대한 예:
sudo ./temp_throttle.sh 80 # Will limit CPU cores when 80C is reached.
*면책조항 - 저는 temp_throttle의 작성자이자 관리자입니다*
답변4
거버너를 변경할 필요 없이 /sys/devices/system/cpu/*/cpufreq/scaling_max_freq
각 CPU 코어의 값만 변경하면 됩니다.
예를 들어 다음 for 루프를 사용하세요.
for f in /sys/devices/system/cpu/*/cpufreq/scaling_max_freq; do
sudo sh -c "echo $1 > $f"
done
당신은 또한 볼 수 있습니다내 setcpu 스크립트.