去年、友人Nからもらった沢山のPCは、naokiさんのおかげで2台にまで減った。1台はVision HTという小型デスクトップ(キューブ?)、もう1台はノートPC(Let's note CF-S9)だ。どちらも滅多に使うことはなく、メインPCが故障した時の予備用に保管している。Let's noteは、会社の出張時や一時的な作業用に使おうとしてLinuxをインストールしたのだが、その後、そんなことをしても何も報われないことに気付き、何だか馬鹿らしくなったので、持って帰って来た。

(20:18補足) 一つだけ見返りがある。Let's noteは軽いということだ。会社のノートはスタバ用で意識高いせいかw、ずっしりと重い(電車だったら「冗談じゃない!」と言いたいくらい)のだ。もし、また電車で出張するなら、Let's noteにするかも知れない。そもそも持って行かないようにはしたいが。

そのLet's noteにちょっと問題があって、再インストールが要るかと思っていたのだが、今朝、作業を始める前に念のために検索してみたら、OSでなくPC自体の問題であることが分かり、設定で対応できた。

その問題とは、何もしないで動かしているだけで、CPU温度が70℃前後に高くなり、ファンがうるさいというものだ。僕のメインPCは、通常は40℃台(室温が26℃程度の時)なので、温度取得機能がおかしいか、OSのインストールを手抜きしたせいで何かおかしくなっているのではないかと思ったのだ。が、結局、Let's noteシリーズは基本的に熱くなるようで(→ 参考)、この個体は更に熱くなるようだ(別のLet's noteはここまで熱くならなかった)。

検索すれば出てくるのだが、対処方法は、以下の3とおりである。

  1. 冷却経路につまったゴミや埃を取り除く。()
  2. 冷却ファンを交換する。
  3. CPUの最大周波数を下げる。(例は最初のリンク先)

多くのページには清掃とファン交換が書いてあるのだが、分解は面倒なのと、排気口を見たところ綺麗だったし、ファンはちゃんと回るので、清掃やファン交換は止めて最大周波数を下げてみることにした。周波数を下げると処理速度も落ちるが、常にうるさくて熱いよりはマシだ。

同時に、効果が疑問視されている、CPUのHyper-Threading (HT)も無効にしてみることにし、以下の組み合わせで試した。

  • 最大周波数: 2.5(通常), 2.3, 2.1, 2.0 GHz
  • HT: On(通常), Off

なお、アイドル状態ではCPU温度が上がらないことがあるので、sysbenchというベンチマークプログラムで負荷を掛けることにした。

その結果、sysbench実行中のCPU温度の最大値は以下のようになった(抜粋)。(注: 一部正しくないので、下記の再測定結果を参照のこと)

  1. 最大周波数(以下同) 2.5GHz, HT: On: 79℃
  2. 2.5GHz, HT: Off: 82℃ (+3℃)
  3. 2.3GHz, HT: On: 71℃ (-5℃)
  4. 2.3GHz, HT: Off: 69℃ (-10℃)
  5. 2.1GHz, HT: Off: 68℃ (-11℃)
  6. 2.0GHz, HT: On: 67℃ (-12℃)
  7. 2.0GHz, HT: Off: 67℃ (-12℃)

最大周波数を下げるのは、かなり効果があった。温度自体はまだ高くて気に入らないのだが、あれほどうるさかったファンの音が、ほとんど気にならないくらいになった。上の結果を見ると、2.5GHzはかなり無理をしているように思う。そんなのは使わなければいいと思うのだが、スペック競争のためなのか・・・ また、最大周波数を下げた場合、HTは温度には関係なくなるようだ。(19:41追記 上記の無理している"2.5GHz"はTurboBoost(条件が合うと、最大3GHzになる)のことだった。)

なお、2.5GHz, HT: Offの場合(2番)に温度が上がったのは謎だ(2回試して2回とも同じ結果だったので、一時的な負荷上昇ではない)。最大周波数の設定が不十分だったのかも知れない。

(17:17追記) 上記2番の謎はTurboBoost (TB)に関係しているかも知れない。HTをOffにしたために、うまく条件がマッチして、sysbenchを実行しているコアのTBが有効になって、温度が上がったのではないか? HT OnでもTBは効くのだろうが、HT Offの方が効きやすいのではないか。

一方、設定で最大周波数を下げていると、TBが常に無効になるために温度が下がるのではないか。

(19:33追記) 周波数設定が不十分だった可能性があるのが気に入らないので、一部を測り直した。また、TBをOffにする方法も分かったので(→ 参照)、合わせて比較した。また、アイドル時の温度も比較した。

負荷時

  1. 最大周波数(以下同) 2.5GHz, HT: On, TB: On: 79℃
  2. 2.5GHz, HT: Off, TB: On: 77℃ (-2℃)
  3. 2.5GHz, HT: On, TB: Off: 72℃ (-7℃)
  4. 2.5GHz, HT: Off, TB: Off: 70℃ (-9℃)
  5. 2.3GHz, HT: On, TB: On: 69℃ (-10℃)
  6. 2.3GHz, HT: Off, TB: On: 68℃ (-11℃)
  7. 2.0GHz, HT: Off, TB: On: 68℃ (-11℃)
  8. 2.0GHz, HT: Off, TB: Off: 67℃ (-12℃)

アイドル時 (HT: Off, TB: Off)

  1. 最大周波数(以下同) 2.5GHz: 48℃ (実際の周波数= 1.2GHz)
  2. 2.0GHz: 49℃ (実際の周波数= 1.2GHz)

再測定結果より、以下のことが分かった。

  • 標準設定(2.5GHz, HT On, TB On)での温度上昇は主にTBのせいなので、TBをoffにすると温度がかなり(約10℃)下がる。
  • 2.5GHzの時はHT offの方が少し(約2℃)下がるが、他の周波数では有意な差はない。
  • アイドル時の温度は、最大周波数との有意な関係はない。

上記の結果より、最終的には、最大2.5GHz(標準のまま), HT: Off, TB: Offにすることにした。気分の問題かも知れないが、2.5GHzは2GHzより若干速い感じがする。また、ファン音はほとんど変わらない。

最大周波数の設定は/etc/default/cpufrequtilsに MAX_SPEED= 2000000 などと書けば起動時に設定され、HTはBIOSでOffにする。また、TBは、起動時に/sys/devices/system/cpu/cpufreq/boostに"0"を書き込むことでOffにできる。

TBをOffにすると、最大で約17%(TB時は最大3GHzなのが2.5GHzになる)の速度低下となるが、CPUの周波数は負荷によって変動するため、常に遅い訳ではなく、最高に負荷が掛かった場合で、TBが適用される条件が揃った場合に遅くなるだけなので(実際、アイドル時の周波数は、どの場合も1GHz程度である)、実用上は問題ないと考えた。また、HTはOn/Offどちらでもいいのだが、調べると、音声や動画の変換や編集に効果があるとのことだが、ノートPCでそんなことはしないので、無駄だから止めた。

昔の僕だったら、仕様いっぱいまで使えないのは気に入らないから、何とかしようとしただろうが、このPCはもらったものだし、滅多に使わないし、今の僕は昔ほど純粋でなく、大勢に影響のない無意味なことに神経とか労力を遣ったりイライラしたくない気分満載なので、これで良しとした。

とはいえ、今回だって、この結論に達するまでに約半日を費やしたので、「(手間が掛からなければ)何でもいい」(それだったら「壊れなければ(タダだから、壊れたって)うるさくたっていい」ことになる)という訳ではなく、自分の納得するところに落とし込むのが重要なのだろうと思った。

そして、その落としどころは、年齢とともに広くなるのかも知れないw

(19:33 測定結果を追加し、それに合わせて結論などを修正)

  •   0
  •   1

2件のコメント

  1. naoki:

    こういうのってクロックダウンと行って良いのでしょうか。

    頭文字Dというマンガで,馬力を落とすチューンというのがあったのを思い出しました。

    頂いたPC,休憩時に車内で使おうと画策しておりますが,まだその余裕がありませぬ。

    •   1
    •   1
  2. PiuLento:

    ●はい、広い意味でクロックダウンです。「広い意味」というのは、今回は最高周波数だけを下げたので、通常時の周波数は変わらないからです。設定によっては、常に低い周波数というのもできるようなので、真のクロックダウンもできそうです。

    馬力を落とすチューンは、トルクを増やすのでしょうか。それだったら、僕も賛成です。

    差し上げたPC、役に立つといいですね。どうぞ、naokiさんのペースでお使い下さい。

    •   1
    •   0

コメントを書く

名前    

メール 

URL