我有一台 Ubuntu 14.04,使用 ClamAV 手动扫描一些文件,这是某些软件的一部分。我一直在运行 clamd,并使用 clamdscan 让它扫描我的文件。扫描文件非常快,由于配置更改或 freshclam 等原因重新启动守护进程非常慢。慢意味着它需要大约 5 分钟,CPU 负载为 100%,但没有任何 I/O2.93 GHz 至强 X5570. 在另一台装有 Ubuntu 和相同版本的 ClamAV 的 VM 中重新启动相同的守护进程,守护进程将在大约 20 秒内重新启动。
两台机器之间唯一的区别是分配的 CPU 数量(10 比 2)、主内存(48 比 6 GB)和负载,因为一台机器用于生产,另一台用于开发和测试。生产机器的缓存和缓冲区等始终有大约 20 到 25 GB 的 RAM。我已经为开发机器提供了 48 GB 的 RAM,甚至通过复制文件填充了高达 40 GB 的缓存,但这并没有改变重启时间,它们仍然需要大约 20 秒。
我猜想 clamd 在重启时会扫描内存,而缓存和缓冲区之类的东西在这里会造成差异。但我找不到任何文档或配置来证明是否扫描了 RAM,如果扫描了,扫描的是哪个。我有许多不同的守护进程以不同的用户身份运行,而 clamdclamav
仅以用户身份运行,因此理论上无法轻松读取其他进程的内存。
ClamAV 过去曾出现过一些与重启缓慢相关的错误,但我发现这些问题都不适用于我目前使用的 ClamAV 0.99.2 版本。因此,这种行为不应该是一个错误,尤其是因为这不会发生在我的开发机器上。
是否有一些文档可以证明我的猜测?如果有,是否有一些配置可用于更改该行为?