Clamdプロセスが特定のファイル拡張子とサイズのファイルを検索するのが遅い

Clamdプロセスが特定のファイル拡張子とサイズのファイルを検索するのが遅い

Linux Dockerコンテナで実行するためにclamdプロセスを使用しました。https://hub.docker.com/r/mkodockx/docker-clamav/

マイユースケースは、サービスがユーザーがアップロードしたすべての添付ファイルをスキャンし、アップロードサービスに応答してスキャンステータスを返すことです。

12MBなどの小さな.pdfファイルなど、一部のファイルをスキャンするのに時間がかかります(〜2分)。

bash-5.0$ clamdscan 12MB-PDF.pdf
/tmp/12MB-PDF.pdf: OK
 
----------- SCAN SUMMARY -----------
Infected files: 0
Time: 121.192 sec (2 m 1 s)
Start Date: 2021:08:24 16:02:09
End Date:   2021:08:24 16:04:10
bash-5.0$
 

bash-5.0$ top
Mem: 4102684K used, 4050300K free, 412640K shrd, 30660K buff, 2356148K cached
CPU:  16% usr   0% sys   0% nic  83% idle   0% io   0% irq   0% sirq
Load average: 0.21 0.07 0.02 2/524 1844
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
   26     1 clamav   S    1251m  15%   4  17% clamd
   25     1 clamav   S     9372   0%   3   0% freshclam -d
 1844   553 clamav   S     5884   0%   1   0% clamdscan 12MB-PDF.pdf
  553     0 clamav   S     2420   0%   5   0% bash
  560     0 clamav   S     2412   0%   3   0% bash
    1     0 clamav   S     2228   0%   1   0% {bootstrap.sh} /bin/bash /bootstrap.sh
  567   560 clamav   R     1584   0%   3   0% top
 

以下は参考用のclamd.confです。

###############
# General
###############

DatabaseDirectory /var/lib/clamav
TemporaryDirectory /tmp
LogTime yes
PidFile /run/clamav/clamd.pid
LocalSocket /run/clamav/clamd.sock
TCPSocket 3310
Foreground yes

###############
# Results
###############

DetectPUA yes
ExcludePUA NetTool
ExcludePUA PWTool
AlgorithmicDetection yes
Bytecode yes

###############
# Scan
###############

ScanPE yes
DisableCertCheck yes
ScanELF yes
AlertBrokenExecutables yes
ScanOLE2 yes
ScanPDF yes
ScanSWF yes
ScanMail yes
PhishingSignatures yes
PhishingScanURLs yes
ScanHTML yes
ScanArchive yes

###############
# Scan
###############

MaxScanSize 2000M
MaxFileSize 2000M
StreamMaxLength 2000M
MaxRecursion 30
MaxFiles 50000
MaxEmbeddedPE 40M
MaxHTMLNormalize 40M
MaxHTMLNoTags 2M
MaxScriptNormalize 5M
MaxZipTypeRcg 1M
MaxPartitions 128
MaxIconsPE 200
PCREMatchLimit 10000
PCRERecMatchLimit 10000

1GB程度の大きな.binファイルでも同じパフォーマンスが低下し、ファイルをスキャンしてスキャン結果を提供するのに2分以上かかります。

誰でもスキャン時間を最適化する方法についてのヒントを提供できますか?

ありがとうございます。

関連情報