「えだまめ」しているラズパイ

30年ぶりに半田ごて握ってラズパイ勉強中。

ラズパイのCPUを100%稼働してみた

◯やりたいこと

ラズパイのzero(1コア)と3B(4コア)のCPUを100%稼働させてその温度変化を確認する。


◯やったこと

・CPUを100%動作にする方法

CPUの100%稼動状態を作り出す方法は単純にpythonの無限ループで行います。SSHを利用してターミナルソフトでログインし、pythonコマンドプロンプトを開いて

while True: pass

と実行すれば無限ループに入りCPU使用率が100%に上昇します。

htopで確認すると100%になっているのが確認できます。

4コアの3Bの場合も同様の手順を踏めばよく、別々に起動したターミナルソフトで4回実施すれば4コアとも100%稼働になります。


・温度の上昇状況

zero

zeroは両サイドを鉄板で挟んで放熱させるパッシブ型ケースに格納。



この状態で100%稼働した時の温度の上昇具合は

こんな感じ。
温度上昇の山が2つあるのは深夜帯にラズパイが再起動し通常運転に戻ってしまったためで、朝から再びフル稼働させています。温度は41℃から50℃へ瞬間的に跳ね上がっていますがそれ以外のデータにあまり変化がない点が気になります。
ただ、過去2週間分の推移記録を見てみると

こちらも温度以外の値の変化がほとんどないので、もしかしたらzeroは細かな周波数制御は行っていないのかもしれません。ためしにもう少し熱くしてみようと100%稼働してアチアチになっている3Bに載せてみたところ

更に8℃上がって58℃。しかしやっぱり他の数値には変化ありません。zeroは一旦走るとそのまま走りっぱなし、という仕様なんでしょうか。(いろいろと設定はできるようなんですが…)

3B

3BもCPUの熱をケースに伝えケースで自然冷却するパッシブタイプ。

こちらは100%稼働させると何と一気に25℃も上がる大爆熱モード。

55℃の平常運転から80℃へ急激に上がって放熱が追いついていないのがわかります。動作周波数にも変化があり、平常時600MHz〜1.4GHzで上下していたものが1.2GHz固定になっています。いわゆるサーマルスロットリングというやつでしょうか。

・卓上扇風機による強制空冷

実験とはいえ80℃で常時走らせるのは精神衛生上あまりよくありません。そこでさっそく電池式の卓上扇風機をラズパイの前に置き強制空冷による冷却実験を行っていきます。

風量は2段階に調整できるので強弱モードの違いも見てみます。

zero

さすが強制空冷、効果は絶大です。弱モードでも15℃も下がっています。

ラズパイがくしゃみをしているのが聞こえます。
ただまだノーマル稼働時の温度には戻れていませんので風量を強モードにしてさらに送風。

しかし意に反し温度は大して変化なし。ありゃ。
と言うことはこの辺が冷却温度の限界点なんでしょうか。

3B

空冷の効果は4コア3Bの方が大きく出ました。CPU温度は20℃もの急降下です。

冷えすぎて風邪をひかないか心配になるレベルですね。ただまだサーマルスロットリングの解除に至っていませんので風量を強モードへ。しかしzeroと同様あまり温度が下がりませんでした。

60℃付近ではちょっとだけ周波数コントロールが復活しています。どうやらこのあたりに周波数制御のトリガー基準があるようです。

・室温を下げる

この実験をしている場所は階段下の物置。室温は今年の異常猛暑に引っ張られ常時30℃以上あります。そこでクーラーを持ち込んで室温を25℃まで下げてみることにしました。(実際は27℃までしか下がりませんでしたが…)

zero

zeroは室温の影響がすぐに現れました。

どうやら冷却できる範囲にまだ余裕があるようです。

3B

対して3Bは温度に関して変化なし。

ただビミョーに下がっているのかサーマルスロットリングが解除され、1.4GHz動作が始まってます。

◯やってみて

CPUを冷却するにあたり強制空冷は効果が絶大な事がわかりました。どうしても冷却したいと言う場合は有効な手段だと思います。ただ前述の通りデメリットが数多くあるのも事実。両方を天秤にかけて使い分けていくのが正解なんでしょう。

ワタシ的にはやはりメンテナンスフリーの便利さの方が圧倒的に大きいので、CPUの稼働率を上げずファンレスタイプで今後も進めていこうかなと考えています。(実は現在使用中のWindowsマシンもPentium J5005 4コアに余裕電源でファンレス、無音動作させています。特に物置内常駐と言う条件の中でメンテナンスフリーは圧倒的に有利と感じてます。)