・cpufreqd
Corei7をmake -j4とかで動かすとCPUの温度が80℃を超えてしまう件、 どうやらcpufreqdで高温時には動作周波数を下げることで対処できそう。
詳細は某所の連載のネタにする予定だけど、/etc/cpufreqd.conf で
[sensors_plugin] sensors_conf=/etc/sensors3.conf [/sensors_plugin]
として、cpufreqdがlmsensorsを引けるようにしておいて、
[Rule] name=Default Rule sensor=Core 0:0-70 cpu_interval=0-100 profile=Performance High [/Rule] # CPU Too hot! [Rule] name=CPU Too Hot #acpi_temperature=55-100 sensor=Core 0:71-100 cpu_interval=50-100 profile=On Demand Low [/Rule]
みたいなルールを設定してやると、Core 0 の温度が70℃まではPerformance Highのprofileで100%の動作周波数になり、 70℃を超えると On Demand Lowのprofileで最大80%の動作周波数に抑えてくれる模様。 ちなみにそれぞれのprofileはこんな感じ。
[Profile] name=On Demand Low minfreq=20% maxfreq=80% policy=ondemand [/Profile] [Profile] name=Performance High minfreq=100% maxfreq=100% policy=performance [/Profile]
こうしておけば、カーネルを make -j4 とかでビルドしても70℃を少し超える程度に収まって、 たまにビープ音がする(テストした時は2度ほどした)だけでカーネルビルドが終了した。
cpufreqdはノートPCでAC電源の有無やバッテリ残量とかで動作周波数を設定するのに使うと思っていたのだけど、 lmsensorsと組み合わせればCPU温度で周波数を変化させることも可能らしい。
もちろん周波数が下がる分コンパイル速度は遅くなるけど、 並列度を下げるのに比べると微々たるものだし、ビープ音にハラハラしなくて済むのは気が楽なので、 とりあえずこの夏はこれでしのごう。:-)
% sensors coretemp-isa-0000 Adapter: ISA adapter Core 0: +63.0°C (high = +83.0°C, crit = +99.0°C) coretemp-isa-0001 Adapter: ISA adapter Core 1: +62.0°C (high = +83.0°C, crit = +99.0°C) coretemp-isa-0002 Adapter: ISA adapter Core 2: +63.0°C (high = +83.0°C, crit = +99.0°C) coretemp-isa-0003 Adapter: ISA adapter Core 3: +61.0°C (high = +83.0°C, crit = +99.0°C) it8720-isa-0290 Adapter: ISA adapter in0: +1.07 V (min = +0.00 V, max = +4.08 V) in1: +1.58 V (min = +0.00 V, max = +4.08 V) in2: +3.38 V (min = +0.00 V, max = +4.08 V) +5V: +2.94 V (min = +0.00 V, max = +4.08 V) in4: +2.08 V (min = +0.00 V, max = +4.08 V) in5: +3.09 V (min = +0.00 V, max = +4.08 V) in6: +0.22 V (min = +0.00 V, max = +4.08 V) 5VSB: +2.16 V (min = +0.00 V, max = +4.08 V) Vbat: +3.30 V fan1: 3068 RPM (min = 10 RPM) fan2: 0 RPM (min = 0 RPM) fan3: 0 RPM (min = 0 RPM) fan4: 0 RPM (min = 0 RPM) temp1: +43.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor temp2: +25.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor temp3: +53.0°C (low = +127.0°C, high = +70.0°C) sensor = thermistor
CPUはOn Demand Lowの80%上限モードで2.4GHzの動作周波数になっている模様 -- kojima 2011-07-15 (金) 07:50:23