- Linux で AMD Athlon 64 Cool'n'Quiet をコントロールする

GO ENGLISH PAGE

Linux で AMD Athlon 64 Cool'n'Quiet をコントロールする

Cool'n'QuietをサポートしているAMD Athlon 64で、かつマザーボードが Cool'n'QuietをしていればLinuxからでもCool'n'Quietをコントロールできる。

Linuxサーバにおいて消費電力を減らし、省エネを行い、ランニングコス トを下げることが可能と考えられる。

  • Download cpudcc-2.1.tar.gz [2008Jan16] なんとVersion 2.1になった!
  • ライセンスをGPL Version 3にしました。

    なぜcpudccなのか

    ubuntuやdebianのデフォルトであるondemandのgovernorは、ナーブナなコントロー ルをしすぎており、たとえば動画エンコーディングの時に、動作周波数を 上手にあげてくれない。それで処理が遅くなる。cpudccは、そんな場合にも うまく対応してくれる。
    一定時間のみ効くTuboボタンとかのインタフェースをつけるのもいいかも。

    カーネルについて

    modprobeでprocessorとpowernow-k8とcpufreq_userspace をロードしておく。
        # modprobe processor
        # modprobe powernow-k8
        # modprobe cpufreq_userspace 
    
    /sys/devices/system/cpu/cpu0/cpufreq の下のscaling_available_governors はperformanceになっているのでscaling_governorの中身を"userspace"に書き換 えておく。 scaling_available_frequenciesの値をみると、"2000000 1800000 1000000"と 表示される。scaling_cur_freqに値を変えてみる。
     $ cd /sys/devices/system/cpu/cpu0/cpufreq
     $ cat scaling_available_frequencies 
     $ su
     # echo '1000000' > scaling_setspeed
    

    /proc/cpuinfoやscaling_cur_freqをみると、ちゃんと1000000になっている。 ワットチェッカーで消費される電力変化をみてみたが、何もしないと90W前後、 1GHzにクロックを落すと65W前後になる。ちゃんと動いているようだ。

    悪い癖ですぐ俺プログラムを作る

    cpudyndやpowernodなど動的にクロックを変化させるツールがあるが、ちょっ と試してみてもうまくいかなかったので自分でプログラムを作る。自分でも思 うが、ちょっと動かないと自分で作ってしまうのは悪い癖である。まあもっと も自作PCとかやっている時点で悪い癖だと思うが。

    [2007Aug15] 尚、Rev 1.10以降はCPUのアイドリング状態をみてCPUの状態を変 化させる。このため、非常にレスポンスがよくなった。以前と同様にeco, normal, powerfulの3つのモードが使える。

    # ruby cpudcc.rb --verbose
    2005-07-25 12:45:10 Start:      2000000Hz
    2005-07-25 12:45:10 Change:     1000000Hz
    ....
    
    
    ちなみに--testmodeはクロックを変えてくれるかどうかのテストで、60秒に一 回ランダムに変化する。ただし、選んだクロックすうが前とクロック数ならば 変更はしない。
    # ruby cpudcc.rb --testmode
    
    もしデーモンのように走らせたければ、nohupコマンドと一緒に使うと良いだ ろう。私はいつもこうやっている。
    # nohup ruby cpudcc.rb &
    
  • [2007Aug15] CPUの状態を変化させるための情報をCPUアイドリング時間 とした。
  • [2005Oct10] --normal, --eco --powerfulのオプションを加える。
    Webサイトへ

    すずきひろのぶ Hironobu SUZUKI < hironobu -at- h2np -dot- net >

    $Id: index.html.ja,v 1.7 2007/08/15 11:40:43 hironobu Exp hironobu $