Ryzen5 3550HのCPU周波数を固定してサーバ運用する話

買ったは良いがCPUのファンが五月蠅いので、メインPCとしては使っていなかったミニPCがありましたが、今はProxmoxを入れてサーバ運用しています。

とはいえ、ファン音が五月蠅いと24時間稼働のサーバ運用には向いていません。逸般の誤家庭ならともかく、一般の御家庭では常時ファン音が唸るサーバは邪魔者に過ぎません。

ということでCPUの発熱・ファン音対策が必要になってきます。
まとも、というか一般的なPCや自作マシンですと、BIOSでCPUの周波数やファンコントロールが出来るのですが、このPCではBIOSに入ってもCPU関係の設定項目が少なく、そこら辺をイジることが出来ませんでした。

ということで、次はLinux上で設定を試してみます。今回はGeminiに聞きながら行いました。

既にProxmoxをインストールしていますが、一応実機にマウス・キーボード・モニタをつないで起動。
まず、cpufrequtilsをインストールします。

sudo apt update
sudo apt install cpufrequtils # Debian/Ubuntu系の場合(ProxmoxはDebian系)

以下のコマンドで、現在のCPUの周波数ガバナーと利用可能な周波数を確認できます。

cpufreq-info

このコマンドで見ると、このRyzen5 3550Hの周波数は1.4GHz、1.7GHz、2.1GHzと出てきました。 8個あるコアそれぞれで、現在のCPU周波数は異なっているので、これを一番低い1.4GHzに固定しましょう。

Geminiに教えてもらい、全てのCPUコアをuserspaceガバナーに設定します。

echo "userspace" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor #固定したい周波数を設定(例: 2000MHz = 2.0GHz)

Ryzen 3550Hのサポートされている周波数範囲内で設定してください。

周波数はcpufreq-infoで確認した利用可能な周波数の中から選びます。

echo "1400000" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed

これで、Ryzen5 3550Hの下限である1.4GHzに固定出来ました。
cpufreq-infoでもそのように表示されます。

これにより、設定前の通常使用のときよりもかなりファンの回転数が減りました。
元々、このPCではファンの回転数が速いときと遅いときが交互に来ていて、音もうるさいときと静かなときがありました。ずっと同じ音量ではないのは、ずっと五月蠅い環境よりも多分辛いです。しかし、この周波数固定作業によってファンが速く回転する頻度が激減しました。

実際にProxmoxに動かす各サーバのCPU負荷によっても変わるでしょうが、最少周波数に固定したので、そうそう大きな騒音にはならないはずです。

ちなみに、これらの設定はどうやら再起動時などで外れるようですので、一発で設定するスクリプトも作成しました。

nano set_cpu_governor.sh
!/bin/bash

echo "userspace" | sudo tee /sys/devices/system/cpu/cpu/cpufreq/scaling_governor # ガバナーを userspace に設定

echo "1400000" | sudo tee /sys/devices/system/cpu/cpu/cpufreq/scaling_setspeed # 固定クロックに設定

cpufreq-info # 現在の設定を確認

作ったスクリプトに実行権限を与えます。

chmod +x set_cpu_governor.sh

実行します。

./set_cpu_governor.sh

systemdで起動時に実行するようにしても良いですが、まあそんな頻繁ではないですし、Proxmoxのホストから実行すれば良いだけなので、とりあえずはここまで。

今回のこのRyzen5 3550Hはそこそこ古いCPUということもあり、不便なところもありますが、最近の他のRyzenシリーズですと、CPUの熱効率はもっと良くなっているでしょうから、わざわざこんなことはしなくてもサーバ運用時でも静かかも知れません。IntelのN100ならBIOSで消費電力を絞ればほぼファンは回らないんじゃないでしょうか。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です