[[diary/Kojima]]

・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度ほどした)だけでカーネルビルドが終了した。

#ref(corei7_temp2.jpeg)

cpufreqdはノートPCでAC電源の有無やバッテリ残量とかで動作周波数を設定するのに使うと思っていたのだけど、
lmsensorsと組み合わせればCPU温度で周波数を変化させることも可能らしい。

もちろん周波数が下がる分コンパイル速度は遅くなるけど、
並列度を下げるのに比べると微々たるものだし、ビープ音にハラハラしなくて済むのは気が楽なので、
とりあえずこの夏はこれでしのごう。:-)
- Core i7付属のcpuFANは2400rpm(?)と思いますが、この時の回転数はどの程度なのでしょうか -- [[尾形]] &new{2011-07-14 (木) 17:19:55};
- 朝方で涼しいので60℃くらいに収まっているけど、sensors の結果はこんな感じ。 
 % 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]] &new{2011-07-15 (金) 07:50:23};
- もっと回転数が少ないかと思いましたが付属cpuFANは3000rpmのようで、これで80度越えはちょっと変な感じですね -- [[尾形]] &new{2011-07-15 (金) 12:08:28};
- まぁ部屋自体が暑いのと、ケースファンもちょっとヘタってきているようで内部の空調があまりよくない影響がありそうですね。まぁ、これだけ高温になるのはカーネルとGCCのビルド時くらいで、世間一般に高負荷な作業とされている動画の全画面再生とかでは50℃をちょっと越える程度で収まっているから、カーネルビルドというのはそれだけCPUを酷使する作業だ、ということで納得しています(笑 -- [[kojima]] &new{2011-07-17 (日) 15:38:48};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS