ディープラーニング・マイニング用マシンで稼働中に再度発生した高負荷問題への対処を行っていきます。

以前に対処したClamAVのスキャン時の問題ですが、再び定期スキャンにおいて同様に高負荷問題が発生しました。本記事ではこの問題に再度対処していきます。

環境は以前と同様、Debian Stretch 9.3.0になります。

状況確認

今回は朝起きたらメールが768件も受信していました。

ClamAVのスキャンも同じメールが10件以上来ており、スキャン所要時間が4時間くらいになっているのに加え、さらに2018/1/5の未来の日付になっています。

それ以外のメールはCPU温度の問題がほぼすべてで、1件だけTooManyProcessに関してでした。

どうやら前回の処置では問題は完全に解決してはいなかったということみたいです。

ClamAVのログ

再度ログを確認してみました。 /var/log/clamav/clamav.logを確認してみましたが、lstat以外は正常に動いているみたいです。 前みたいにエラーが頻発している感じではなさそうで、単純な高負荷が原因でしょうか。

Mon Jan  1 00:07:29 2018 -> SelfCheck: Database status OK.
Mon Jan  1 01:07:29 2018 -> SelfCheck: Database status OK.
Mon Jan  1 02:01:04 2018 -> WARNING: lstat() failed on: /tmp/clamav-cd29a4186f37f53ac0b8c1debe4d06fa.tmp
Mon Jan  1 02:02:04 2018 -> WARNING: lstat() failed on: /tmp/clamav-62563cfb6e11fc1ce4f4112e4c988eda.tmp
Mon Jan  1 02:02:04 2018 -> WARNING: lstat() failed on: /tmp/clamav-6320207eb143239b8b6640e5522780c4.tmp
Mon Jan  1 02:08:01 2018 -> SelfCheck: Database status OK.
Mon Jan  1 03:59:02 2018 -> SelfCheck: Database status OK.
Mon Jan  1 04:59:02 2018 -> SelfCheck: Database status OK.
Mon Jan  1 05:59:02 2018 -> SelfCheck: Database status OK.
Mon Jan  1 06:59:02 2018 -> SelfCheck: Database status OK.
Mon Jan  1 07:07:26 2018 -> Reading databases from /var/lib/clamav
Mon Jan  1 07:07:33 2018 -> Database correctly reloaded (6376284 signatures)
Mon Jan  1 08:07:33 2018 -> SelfCheck: Database status OK.
Mon Jan  1 09:07:33 2018 -> SelfCheck: Database status OK.
Mon Jan  1 10:07:33 2018 -> SelfCheck: Database status OK.
Mon Jan  1 11:07:33 2018 -> SelfCheck: Database status OK.
Mon Jan  1 12:07:33 2018 -> SelfCheck: Database status OK.
Mon Jan  1 12:59:27 2018 -> --- Stopped at Mon Jan  1 12:59:27 2018

Zabbixのログ

Zabbixのグラフを確認してみます。

CPU

CPU温度は60度前後を往復しており、メールに気づかずに就寝していたこともあって2時から7時頃まで長期間メール通知が送信されていた模様です。 CPU負荷もスキャン中に跳ね上がり、使用率もほぼ100%で貼りついています。

GPU

GPUについてもほぼ一定となっており、こちらの問題はなさそうです。

ClamAVのCPU使用率の制限

結局のところの問題は、ClamAVのスキャンで使用率がほぼ100%に貼り付くことにあると考えられます。そこで、ClamAVのCPU使用率に制限を加えることで問題へ対処してみます。

systemdの設定

ClamAVのサービス設定ファイル/lib/systemd/system/clamav-daemon.serviceにおいて、[Service]セクションで CPUQuota=50%と設定します。

そして再読み込みをおこないます。

$ sudo systemctl daemon-reload
$ sudo systemctl reload-or-restart clamav-daemon

実験

フルスキャンを実行してみて、リソースの確認をしてみます。

$ sudo bash /root/clam-full.sh

スキャン中同時にtopコマンドで利用率を監視していましたが、clamdのCPU利用率が50%前後で落ち着くようになりました。

以下に18:30~19:30あたりで動作した結果を示します。(GPUの結果は省略) CPUの負荷はかなり低くなり、温度上昇もほとんどなくなりました。 あとはcronで月曜2時に再度実行された時の様子待ちでしょうか。

参考

次の記事を参考に設定しました。