套接字上ClamAV clamd INSTREAM的间歇性问题

时间:2018-08-29 08:26:02

标签: clam

我有一个运行Lambda函数的NodeJS代码,可将文件从S3流传输到在EC2实例上运行的ClamAV。

通常(大约75%的时间),系统可以工作,但经常(尤其是从不同的Lambda容器扫描多个文件时),clamd线程卡在INSTREAM上。

一旦线程进入INSTREAM 25至30秒,它似乎将无法恢复。经过QUEUEDSINCE 350秒后,它被杀死。我不知道这些数字中的任何一个与我的配置中的任何值有何关系。

我正努力在日志中找到任何错误迹象-INSTREAM请求的数量与完整扫描的数量匹配:

$ sudo grep -c "got command INSTREAM" /var/log/clamav/clamav.log
129
$ sudo grep -c "Chunks complete" /var/log/clamav/clamav.log
129
$ sudo grep -c "Scanthread: connection shut down" /var/log/clamav/clamav.log
129

...好吧,现在我对日志进行了更深入的研究,扫描某些日志花费的时间更长。当我处理一批16个文件时,Lambda并发限制为7,则在几秒钟内将扫描前7个文件。下一个文件不久后开始扫描,在一秒钟内到达“块完成”,但是在“ Scanthread:连接关闭”之前需要23秒。从这里开始,情况变得更糟-1:24,1:45 ...,然后第三批包含7个文件的扫描需要3分钟以上的时间。

performance on AWS m3.medium

如果我花几分钟时间让系统稳定下来,所有线程都将消失,花费3分钟以上的相同文件现在大约需要5-7秒。

如果在更快的计算机上运行相同的测试,性能会提高,但问题仍然存在:

performance on AWS m4.xlarge

当线程卡在INSTREAM上时,我可以看到文件仍然存在:

$ ls -al /tmp
drwx------  2 clamav clamav     4096 Aug 29 16:52 clamav-493bdf893ce4d8d7763c00fee22d9d69.tmp
-rwx------  1 clamav clamav 25683921 Aug 29 16:52 clamav-5cdefd83d5531a03c7cf22fda37d133f.tmp

0 个答案:

没有答案