![Clamd 프로세스가 특정 파일 확장자 및 크기의 파일을 검색하는 데 속도가 느림](https://linux55.com/image/194835/Clamd%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EA%B0%80%20%ED%8A%B9%EC%A0%95%20%ED%8C%8C%EC%9D%BC%20%ED%99%95%EC%9E%A5%EC%9E%90%20%EB%B0%8F%20%ED%81%AC%EA%B8%B0%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EA%B2%80%EC%83%89%ED%95%98%EB%8A%94%20%EB%8D%B0%20%EC%86%8D%EB%8F%84%EA%B0%80%20%EB%8A%90%EB%A6%BC.png)
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분 이상이 소요됩니다.
누구든지 스캔 시간을 최적화하는 방법에 대한 팁을 제공해 주실 수 있습니까?
감사해요.