これまでにClamAVのフルスキャンの負荷対策と設定修正を行ってきました。 今回は、週に1度の定期スキャンが正しく行われたか検証します。

環境

  • OS: Debian Stretch 9.3.0
  • 監視サーバー: Zabbix 3.4
  • ウイルス対策: ClamAV
    • スキャンにはclamdを使ったclamdscanを使用

以前行った対処

最初に発生した問題では、ClamAVのrecursion limitの設定以上の階層がディレクトリに存在していたためエラー出力が膨大になっていたので、設定で上限を上げました。

上記の設定後、再び定期実行で高負荷が発生する問題が発生しました。そこでClamAVのサービス設定ファイルにCPUQuota=50%として、使用リソースに制限を加えました。

さらに、翌週ではCPU負荷は抑えられたもののいつまでたってもスキャンが終わりませんでした。crontabを見直すと、週に1回月曜日の2~3時に1分おきに60回繰り返すというとんでもない設定をしていたことが判明しました。

Zabbixの監視ログの確認

今回はSlackやメールにZabbixから温度以上やプロセス数についての警告が来ることはありませんでした。

動作時の負荷をZabbixのWebコンソールより確認してみます。

CPU

以下にCPUの負荷、使用率、温度のグラフを順に並べます。

いずれのグラフもClamAVのスキャン時刻の2時より上昇していますが、以前のCrontab設定ミスにおける多重起動時とは比べ物にならないほど低いです。 そして、上がった負荷も1時間程度で終了して、元の値に戻っています。

以上より、低負荷かつ1時間程度でClamAVのフルスキャンは終わってそうです。 これでClamAVに関する設定と動作確認はひと段落ついたといえそうです。

GPU

ちなmにGPUの使用率と電力については、マイニング中はほぼ安定しているといえそうです。 こちらは以前から問題なく動いていますので、変わらず動作中です。

まとめ

ClamAVのフルスキャンを行う際、次の3点に気を付ければ問題なく動作できそうです。

  1. recursion limitを多めに設定する
  2. サービス設定ファイルからCPUの負荷上限を設定する
  3. crontabの設定で重複起動しないように気を付ける