この記事は2020年に今は無き別サービスに投稿したものを、今更Qiitaに再投稿したものです。
SSD換装したり無理やりMojaveにしたりしていたMacサーバは、現在Mojaveでの運用を諦めDebianをインストールしMinecraftのマルチプレイサーバなどに活用している。
コロナ禍での休校期間中、後輩たちが筆者宅のMinecraftマルチプレイサーバーにログインして遊ぶ頻度が上がった。そのサーバーとは例のオンボロMac mini(late 2009)であって、11年前のCore 2 Duoがまだ現役なのである。
そんなことはお構い無しに、後輩たちはネザーを探索し、エンドシティを探し、ゾンビトラップ、ゴーレムトラップまで作って放置プレイをしているのである。トライデント量産トラップまで設置された。そうするとラグが酷い。top
で覗いてもswapが発生しているわけでもない。しかし気になったのが、CPU使用率がさほど上がっていない点だ。熱を持っていてクロックを上げられないのではという仮説を立てた。サーバーの筐体を触ってみると、ホカホカであった。
温度を調べたい
CPU温度を調べるにはパッケージlm-sensors
を入れれば良いということだったので導入する。
$ sudo apt install lm-sensors
一つだけ単位が「RPM」になっている項目があった(他は℃)。Mac miniはファンを一つだけ搭載しているのでこれは間違いなくそのファンの回転数である。問題は、高負荷、高温時にもファンの回転数が上がっていないことである。常に毎分2000回転であった。ファンの回転数をどうにか上げたい。
fancontrolを試す
いろいろ調べていくとfancontrol
を使えばいいという情報が目立った。
$ sudo apt install fancontrol
pwmconfig
で温度センサーとファンの関連付けをするとのことだったが、どうもうまくいかない。
他の方法は無いかとMac向けのパッケージが無いか等を調べていたら、macfanctld
を見つけた。
macfanctld
apt search
で出る概説だと、Macbook用のファンコントロールデーモンとのことだったがとりあえず入れてみる。
$ sudo apt install macfanctld
インストールするとデーモンが起動し、しばらくファンの回転数が上がってうるさくなる。
/etc
にmacfanctld.conf
という設定ファイルが作られている。最低回転数、回転数が最低・最高になる温度が設定できる。
常に2000回転だと気になるので最低は1500回転にした。Minecraftを起動した際の負荷等条件を変えて検証し、以下の設定に落ち着いた。ログを取るにはlog_level
を設定しておく必要がある。
# Config file for macfanctl daemon
#
# Note: 0 < temp_X_floor < temp_X_ceiling
# 0 < fan_min < 6200
fan_min: 1500
temp_avg_floor: 50
temp_avg_ceiling: 60
temp_TC0P_floor: 55
temp_TC0P_ceiling: 70
temp_TG0P_floor: 55
temp_TG0P_ceiling: 70
# Add sensors to be excluded here, separated by space, i.e.
# exclude: 1 7
# will disable reading of sensors temp1_input and temp7_input.
exclude: 8
# log_level values:
# 0: Startup / Exit logging only
# 1: Basic temp / fan logging
# 2: Log all sensors
log_level: 1
$ sudo systemctl restart macfanctld
センサーの例外処理についてだが、sensors
を実効したときに常に-128℃を示すセンサーがあり、どうやらこのデーモンはセンサーの平均温度を見ているようで、除外したほうがいいと考えた。
head
を使い/var/log/macfanctl.log
の先頭付近をみていくと、sensors
を実行したときのセンサー名とmacfanctld
での通し番号の対応が分かる。
夏を乗り切れるか
最近のMinecraftはちゃんとマルチスレッドに対応しているようだ。同時にネザーやらエンドやらに行かれるとデュアルコアではしんどい。誰かがログインして負荷がかかる作業をするとファンの回転数が上がるのですぐに分かる。4500回転ほどになることもある。ノートPCに比べるとMac miniのファンは結構うるさい。
11年落ちCore 2 Duoなんかよりも最近のラズパイの方がよほど高性能だ。64bit対応し、8GBメモリモデルもある。これからの季節、暑い日に古いCPUを高負荷で使い続けると逝ってしまわないか心配である。新しいサーバーが欲しいが、身分が安定してからにしよう。