我在联想 X1 Carbon(i7/第 7 代)上运行 Ubuntu 18.04。电池续航时间从非常棒(6-9 小时)变成了糟糕透顶(不到 2 小时)。
使用top
&sudo powertop
我可以看到大部分负载来自服务clanscan
。它占用了我 50% 以上的 CPU。
我不知道为什么会发生这种情况 - 我认为防病毒软件的设计不会使用超过 50% 的(相对)强大的 CPU。
我唯一能想到的就是我确实在跑步同步中- 不断同步共享 Google Drive 中的文件。文件的来来去去会触发 Clamscan 不断扫描文件系统吗?
相比之下,关闭 ClamAV 和 Insync 会使我的基本 CPU 使用率从 66% 降至 8%。
我有两个问题:
- 还有其他人遇到过 ClamAV/Clamscan 的这种行为吗?
- 有什么办法可以阻止 ClamAV/Clamscan 占用我的 CPU 和耗尽我的电池?
我想另一个问题是,是否有 Clamscan 的替代品,而它们不会试图破坏它们所在的机器?
答案1
如果你已经安装了 Clam GUIclamTk
并且clamtk-gnome
,(https://dave-theunsub.github.io/clamtk/),调出 GUI,选择 Scheduler 图标,然后设置所需的扫描频率,或者根本不设置。
答案2
在终端上,你可以做这样的事情:
$ sudo clamscan -ir -l /var/log/clamav.log --exclude-dir="^/proc/|^/sys/|^/dev/" --max-scansize=50M //.
它通过排除不太可能包含问题的目录并限制文件大小来限制 CPU 占用。在下班后运行它也有好处:
$ sudo crontab -e
# m h dom mon dow command
* 3 * * 1,3,5 clamscan -ir -l /var/log/clamav.log --exclude-dir="^/proc/|^/sys/|^/dev/" --max-scansize=50M //.
额外的修复(如果上述方法还不够):限制 clamscan 进程可以使用的最大资源。将以下内容添加到 cron:
cpulimit -l 30 -- clamscan -ir -l /var/log/clamav.log --exclude-dir="^/proc/|^/sys/|^/dev/" --max-scansize=50M //.
这会将 CPU 使用率限制为 30%(或任何其他适合您的值)。
看https://www.howtoforge.com/how-to-limit-cpu-usage-with-cpulimit-on-ubuntu-linux有关 cpulimit 的更多详细信息。