プロローグ
とある昼下がり、Docker上に立てたWebサーバーが急に接続できなくなった。
エラー内容
どうやらCPUが応答していない。libvipsというプロセスが原因のようだ。
ひとまずスペック確認
ハード
型番 | スペック | |
---|---|---|
CPU | AMD Ryzen5 1600 | 6コア12スレッド 3.2GHz |
RAM | CFD W4U3200CS-16G | 32GB DDR4-3200 16G*2枚 |
SSD | WD Blue SN570 NVMe WDS100T3B0C | 1TB SSD M.2 |
M/B | ASRock X370 Pro4 | X370-AM4-DDR4- PCIe 3.0 |
G/B | GT710-SL-2GD3-BRK-EVO | NVIDIA GeForce GT 710 |
電源 | PQ650M R-PQ650M-FA0B-JP | 650W 80PLUS GOLD |
ソフト・OS
OS: Ubuntu Server 22.04.02 LTS (Jammy)
対処方法
CPUのC6モード設定
disksystem様の記事
ハード構成上C6モード(省電力切り替え)の設定に起因するもののようです。
NVIDIAのドライバ更新
ubuntu-drivers devices
でグラフィックカードのモデルと推奨ドライバをチェック
== /sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0 ==
modalias : pci:v000010DEd0000128Bsv00001043sd00008899bc03sc00i00
vendor : NVIDIA Corporation
model : GK208B [GeForce GT 710]
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-418-server - distro non-free
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-470 - distro non-free recommended #推奨はコレ
driver : xserver-xorg-video-nouveau - distro free builtin
sudo ubuntu-drivers install nvidia-driver-470
で推奨ドライバを入れる
GRUBブートの変更
/etc/default/grub
で GRUB_CMDLINE_LINUX_DEFAULT=""
にnouveau.modeset=0
を追記する。
もしquiet splash
があったら、その後に追記する。(GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"
)
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="nouveau.modeset=0" <=ココ
GRUB_CMDLINE_LINUX=""
追記したら、sudo update-grub
で設定を反映する。
その後、再起動。
※もしエラーが続く場合は、ビデオドライバをロードしないオプションのnomodeset
を使うことができます。
作業を終えて
設定前まではおおよそ2~14時間に1回のペースでCPU stuckを起こしていたが、設定後は2日間連続で稼働している。
ただ、AMD公式のコミュニティでも2020年までずっと議論されていたようで、根本的な解決には至っていなかった点は注意が必要である。
ログを参照するとstuckの前にDockerのエラーっぽいものもあったので、Docker, Docker-compose周りの問題を探ってみたり、グラフィックボードの問題なのか調べてみたりして、1日間は丸々溶かした。
問題調査にあたっては、公式他、スペイン語圏の記事に助けられた。スペイン語出来て得した…
引き続きCPUの温度管理をしながら監視していくしかない気がする。そうでなければハードの組み直しも検討するのが良いだろう。
追跡記録
- 2023/09/02 [稼働して5日間経過]
問題なく稼働し続けている。サーバーへのアクセス数も増えているが、目立ったエラーもなく、CPU,メモリも問題ない。 - 2023/09/05 [稼働して8日間経過]
サーバーのsyslog,dmseg, kern_log等では異常も見当たらず、順調に稼働している。CPUの温度も問題ない。