搜索
查看: 14914|回复: 201
收起左侧

[分享] ESET和其他主流杀软性能分析

  [复制链接]
B100D1E55
发表于 2018-2-5 11:32:30 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2018-3-13 22:37 编辑

更新日志:

2018-02-06:更新了ESET AMS CPU占用率可视数据,以及更详细的性能损耗分解图
2018-02-11:并没弃坑……只是最近事情突然多起来了测试进度比较慢

其他的缓慢更新中,平均一个产品单项测试跑下来至少一个小时

----------------------------

之所以想着做这个简单的测试和分析主要是因为不久前和@驭龙 同学在ESET板块讨论到ESET性能问题:驭龙同学觉得ESET v11比较卡顿,而这个看法在版区内也并不是个例。这引发了我的好奇心,毕竟AV-TEST和AV-Comparatives在ESET性能评估上一直“相互打脸”,比起在两者中纠结还不如自己测试一下。

本文主要分为两个部分,第一部分主要分析ESET的性能问题,第二部分将其拓展到其他几款坛内讨论比较多的杀软。由于时间有限没法涵盖所有杀软,望谅解。

ESET性能简单分析

从工作原理来看,ESET本不应该是“轻量级”杀软。主要因为其核心技术是代码模拟执行,这相较于很多静态启发来说性能代价大不少。因此这类产品一般都会大量运用缓存技术来尽量避免不必要的代码模拟。从ESET披露的性能优化情况来看,其不仅有扫描缓存和白名单,更有动态启发缓存(即把跑开的特征序列缓存在磁盘,以在定义更新后重新扫描时加快速度)。针对AMS这种原本性能影响应该很大的技术,ESET也对已扫描的内存页进行缓存减少性能损失。

但缓存技术总是有局限性,首当其冲的就是面对未缓存新文件的失效问题。其次,大量频繁查询缓存和不当的内存缓存策略可能会带来大量的随机磁盘IO,这对机械硬盘的性能影响尤其大。


测试方法
header.jpg
我尝试了多种测试方法,最终还是决定用较为权威的PCMark10成绩来评估。PCMark10中包含了较为完整的日常使用体验模拟,包括程序启动速度、文档打开速度、文档编辑、网页浏览等。从测试情况来看,PCMark10输出的结果较为稳定,一般上下浮动范围为2%。以下的数据均经过多次测试验证,确保排除掉特殊干扰。

在和坛友的讨论过程中,我第一怀疑的是SSD和HDD的区别。例如驭龙同学的电脑是5400转的机械硬盘,如果ESET在随机读写方面优化很差,那么在HDD的性能衰减就很有可能比在SSD平台上严重。为了测试方便,本部分的测试在开启Intel DirectI/O的VMWare上进行,使用同一个磁盘镜像(因此不同平台磁盘碎片化情况也一致,最大程度上避免误差)。测试结果在一台物理机工作站上进行了进一步的交叉验证。

此外,我猜测性能表现还可能和计算机其他配置有关。例如现今不少杀软已能根据不同电脑内存大小自动调整进程活动内存大小,但内存占用小时势必会导致更多的性能损失,因此我调整VMWare虚构了两种配置的电脑进行测试。

在测试时均进行了相应的“热机”工作,等待系统启动占用率平稳后(~2分钟CPU占用都小于1%)再进行测试。同时预先进行全盘扫描以便让带有缓存功能的杀软充分缓存好已有文件。杀软均升级到最新版,测试全程联网。

测试平台

高性能电脑:
Windows 10 Pro x64 16299.192
12核处理器
16GB内存
PCI-E SSD,80GB镜像,磁盘容量占用率~40%

普通性能电脑:
Windows 10 Pro x64 16299.192
2核处理器
4GB内存
5900转硬盘,80GB镜像,磁盘容量占用率~40%

应用启动测试软件:Libreoffice Writer, GIMP, Chromium, Firefox

裸机:屏蔽Windows Defender杀毒组件,屏蔽自动更新等一系列后台任务

测试产品:EIS 11.0.159.0

测试结果(越高越好的项目用这个颜色标识,否则是越低越好)

高配置电脑裸机 ESET 耗时增幅/性能衰减
得分 11692 9189 -21.4%
Writer热启动 1.377 1.557+14.5%
Writer冷启动 2.919 3.121+6.9%
GIMP热启动 3.458 3.943+14.0%
GIMP冷启动 4.163 4.567+9.7%
Chromium热启动 0.270 0.682+152.6%
Chromium冷启动 0.709 1.108+56.3%
Firefox热启动 0.780 0.831+6.5%
Firefox冷启动 1.303 1.404+7.8%


普通配置电脑裸机 ESET 耗时增幅/性能衰减
得分 5530 4478 -19.0%
Writer热启动 1.382 1.697+22.8%
Writer冷启动 17.651 18.975+7.5%
GIMP热启动 3.677 3.980+8.2%
GIMP冷启动 9.512 10.285+8.1%
Chromium热启动 0.313 0.805+157.2%
Chromium冷启动 4.331 5.000+15.4%
Firefox热启动 0.845 0.917+8.5%
Firefox冷启动 4.595 4.987+8.5%


可以看出ESET对于程序启动速度影响极大,总分拖累了20% 。原先猜测SSD对HDD对结果有影响,但从成绩来看两者成绩变化量非常一致(当然SSD总体比HDD快非常多)。另一个有意思的观察是冷启动的影响比热启动大,我个人猜测这是因为冷启动主要时间消耗在磁盘I/O上,而热启动因为文件已经被磁盘缓存因此瓶颈转移到处理器的单线程性能上。由于ESET有磁盘扫描缓存,反复扫描带来如此之大性能影响不大对头,因此我猜测性能影响来源主要是HIPS部分,最大的可能是AMS

为了验证这个猜想,我进行了更详细的测试考察每个防御模块对启动速度拖累的影响,结果如下:


eset_perf_breakdown.jpg

结果基本符合我的假设,扫描和其他(即防火墙等其他程序组件)在总性能衰减中占比不过20%,AMS占了一大半,剩下的是HIPS组件,这里面包括漏洞防护、勒索护盾、自我保护等。
这个结果符合常理吗?程序启动的时候AMS需要对内存中所有新分配的可执行页进行扫描,扫描缓存后再次执行就不会有多少性能折损。而程序启动这个流程等同于将磁盘数据载入新内存页,自然落在缓存优化能力之外。

分析

这样的结果说明ESET性能很差吗?并不尽然。设计计算机软硬件的原则之一就是“优化常见情况,且不要让非常见情况发生时作大死”。应用程序启动是常见情况吗?对于大部分程序,用户使用软件本身的时长远大于打开/关闭程序的时长,缓存AMS内存页也算“优化常见情况”的做法,因为这种代码执行前检查减少了后续执行代码时的性能负担。也就是说程序启动后只要可执行页代码没有频繁变更,初始载入代码缓存后后续性能衰减就会微乎其微,这和其他一些杀软在Syscall下增加大量额外监控代码(钩子)带来的效果就大不一样:对于钩子等手段,每次执行函数都要执行相应的额外指令,因此性能表现和函数调用频度就有较大相关性。从第二部分也可以看到,虽然ESET在初始载入的时候性能折损较大,但一旦“热身”后,性能影响就非常小。对于长时间运行同样区段内代码/Syscall的程序来说,预扫描缓存比调用时监控的性能优势要大不少。

但总体来说,特定情况下ESET的确会“卡”。在频繁启动新程序/新进程,或者短时间内大量生成新可执行/档案文件的时候,由于这些情况落在缓存的优化能力之外,ESET的特定性能缺点就毕露无遗,很容易产生短期CPU占用的峰值(你可以把内存页扫描等同于文件扫描)。

(0206更新)
为了直观展现这个峰值,我使用Process Monitor进行100ms颗粒度的CPU占用采样来衡量AMS对处理器占用的影响。我测量了Chrome热启动的情形。这里需要注意的是AMS扫描占用不体现在杀毒软件主进程(ekrn.exe)上,而体现在被监控进程进程(Chrome.exe)上,测试结果如下:

关闭AMS和文件监控:

has_nothing.jpg

关闭文件监控,启用AMS:

has_ams.jpg

打开文件监控和AMS:

has_scan_ams.jpg

虽然三个截图宽度有点误差……总之上面三个图显示的是Chrome启动1秒时间内的CPU占用情况。可以看见AMS和文件监控在程序启动时带来了CPU瞬时占用率的提高,推测是内存页载入代码的时候开始扫描,导致CPU占用率达到15%,而AMS关闭时占用率仅为5%左右。这种瞬时占用率变化没办法从平均占用率体现出来。评测杀软时不能只看杀软主进程的占用率(关闭/打开AMS对比ekrn占用率发现基本没有变化)。

相对应,如果把监控点后置(在函数被调用时才监控,也是大多杀软的模式),这种峰值就平摊到运行时上,虽然可能拖慢程序速度,但不会太“卡”。而不幸的是用户往往对卡顿更敏感。这和游戏FPS的平均帧率对应瞬时帧率变化带来的卡顿有着类似的情况。
有了上述观察,我们来看看AV-TEST性能测试中为什么ESET表现那么差:

avtest.jpg

AV-TEST性能测试中ESET表现特别差的是软件启动速度(拖累66%),安装程序速度(拖累40%),以及文件拷贝速度(32%)

套用上文观察,很容易可以发现这几个应用场景均是缓存没法优化的,因为他们都产生新文件或者新内存页

其中文件拷贝到底用了什么文件,这些文件有没有被预先缓存过,AV-TEST并没有详细说明,但总体而言我认为很可能是由大量未被缓存的可执行/档案/文档文件组成,因为我自己的文件服务器大部分情况下都可以实现满磁盘带宽传输/复制已有文件(ESET进程占用率很低)。

AV-TEST选的这些能代表用户使用习惯吗?如果一个用户每天大量打开程序,安装程序,拷贝文件,那么的确ESET的缓存机制可能没法优化这些场景的性能。但如果用户更经常的是浏览网页,编辑文档,视频/音频编辑等,那么AV-TEST的结果就没什么参考价值。从下文的数据也可以看到这点

其他主流杀软性能分析

有了之前的分析,我们再拓宽测试的项目种类,横向对比一下各大厂商的性能表现。本次选取的是
Bitdefender Total Security 2018     (简称BD)
ESET Internet Security 2018            (简称EIS)
Kaspersky Internet Security 2018    (简称KIS)
Norton Premium 2018                     (简称NIS)
Windows Defender (win10 16299版本) (简称WD)
火绒杀毒                                              (简称火绒)

测试项目除了上文的程序启动速度外,还考察了网页浏览性能、网络视频性能、报表软件性能(Libreoffice)、文档编辑性能(Libreoffice)

所有的杀软在初次安装后都进行了全盘扫描,以让带有缓存性能优化技术的杀软完成文件缓存提高性能。测试前均进行热机并等待系统占用进入空闲稳定状态后再运行测试。其中Norton的后台优化计划任务被我手动关闭了,主要是为了防止自动化测试的时候在后台影响性能。而其他产品均更新到最新版,并使用默认设置。测试全程联网

测试平台
系统:Windows 10 Pro x64
CPU:i5-4200U
内存:4GB
硬盘:128GB SSD

为了让结果直观显示,下面的所有数据都用性能衰减百分比表示出来,其中每项中表现最好的产品用绿色标出,最差的产品用红色标出

BDEIS KIS NIS WD火绒
程序启动性能 -8.3%-22.5% -17.9% -10.6% -28.6%-25.8%
视频会议性能 -3.3%-3.2%-1.8% -2.8% -3.5%-2.1%
网页浏览性能 -1.8%-2.4% -5.9% -3.8% -1.0%-1.8%
报表程序性能 -0%-0.4% -1.6% -2.2% -0.4%-4.0%
文档编辑性能 -3.1%-0.5% -0% -7.0% -4.3%-6.8%


基础总分 -4.5%-9.9% -8.8%-5.8% -12.0%-10.6%
生产力总分 -1.6%-0.4% -0.4% -4.6% -2.4% -5.4%
总分 -3.0%-5.2% -4.7%-5.2% -7.3%-8.0%


注:报表、文档编辑均模拟了用户日常操作,包括编辑文字、插入图片、保存文件、打开大报表(万行级别)、生成图标等等

总体而言BD性能综合优化上做的最好。而明确有使用动态虚拟机启发的几家厂商——EIS、WD、火绒,在程序启动速度上都是大悲剧。当然,EIS主要是因为内存扫描,而WD恐怕是因为缺乏缓存,火绒按理来说有缓存,我还特地提前扫描了测试程序相关文件并跑了两遍,为什么成绩还是这样子就不得而知了。

而除了程序启动之外,ESET在程序运行的时候占用就相当小,报表和文档的性能拖累可以忽略不计。作为对比,NIS虽然不怎么拖累启动性能,在报表和文档性能上却下滑的比较厉害。卡巴的确是不怎么卡了,而WD虽然在报表性能拖累很小,总体还需努力。表现得最差的大概是火绒,看来并不像很多人传言的那样是“轻量级程序”

Q&A

Q:这个测试能较好代表杀软性能影响吗?
A:看情况。这个测试缺少的最重要的部分是网页访问,这和网页加载测试不同。网页加载测试里加载的是本地文件,主要考察浏览器加载脚本和渲染速度的影响,而网页(特指外网)访问包括了更多因素。
倘若安全产品在访问网页时进行信誉查询甚至更复杂的联网查询,这些性能影响将没法被捕捉到(例如很多人抱怨一些产品的卡网属性)。测试网页加载速度实在是比较困难,除了同一区段时间内网络状况变化难以控制外,这个指标和DNS查询情况、测试地点等大量因素都有较大关联,目前还没想到什么比较好且省时的测试方法。
至于游戏性能,我大致测了一下EIS,KIS两款产品,对FPS的影响都忽略不计。我觉得只要杀软不作死,游戏性能一般不会有太大影响

不同用户的常用程序差异性很大,这里的都是很基础的“轻量”应用。更复杂的例如视频编辑、图片处理、程序编译的数据若有时间测出会更新在这个帖子里

Q:为什么国产只选了火绒
A:主要是时间有限外加条件有限。我的网络环境导致测试360等云化程度极高的杀软没什么代表性(服务器经常连不上),而且不少产品并没有实时文件监控,断网效果下降,横向测试并不公平。而火绒总体还是本地侦测,因此加入测试。

Q:虽然百分比挺大,但有的应用场景不就是几毫秒的差别吗?
A:不尽然,当一个应用运行处理时间变长后,如果对系统压力类似于上述测试就不会是“忽略不计”。假定某种负载性能衰减有20%,那么原来跑8分钟的任务现在就需要10分钟,原来需要8小时就变成需要10小时……从ESET的SSD vs HDD对比也可以看到,虽然SSD和HDD有着一样的相对速度衰减比率,但因为SSD加载速度比HDD快得多,绝对时差就有很大的区别,而绝对时差是用户最直观感受到的。此外,这里还是衡量单个负载,当多个类似负载同一时间叠加的时候,性能问题会更加严重。

Q:看到性能影响这么大,我想关杀软/部分监控功能
A:安全往往要和性能进行权衡。监控越全面系统负担往往越大。负责的厂商不会盲目增加监控点,而会把性能都花在刀刃上,但具体到不同厂商取舍的策略不同。从上文可以看到有一些牺牲了冷启动速度,有一些则略微牺牲运行速度。从防御纵深的原则来说,我个人自然不建议关闭杀毒监控。

其他的想到再补充……后续有条件会加入更多测试结果

评分

参与人数 25经验 +20 分享 +3 魅力 +1 人气 +28 收起 理由
轻巧夺命 + 1 版区有你更精彩: )
linzh + 1 版区有你更精彩: )
JAYSIR + 1 版区有你更精彩: )
小飞侠.net + 1 感谢解答: )
yfdyh000 + 1 精品文章

查看全部评分

cloud01
发表于 2018-2-5 11:37:47 | 显示全部楼层
eset日常使用很流畅 ,这个不像查杀率 看测试 ,要看实际为主,卡巴测试很流畅,但可能针对测试项优化过 ,平时打开个视频或者 程序文件夹 ,cpu飙升。
驭龙
发表于 2018-2-5 11:45:24 | 显示全部楼层
支持大作了。

说实话ESET在低转速机械硬盘上的冷启动,让程序的启动确实是慢很多的,热启动的话,大概跟SEP相差不算太大了。

看来要想流畅的使用ESET,还是上SSD吧。

可惜我是华硕A6511一体机,一体化机身,拆机非常麻烦,唉
85683213
发表于 2018-2-5 11:52:43 | 显示全部楼层
现在杀软效能对云的影响非常大
建议还是看下当地连到云的延迟
B100D1E55
 楼主| 发表于 2018-2-5 12:02:22 | 显示全部楼层
驭龙 发表于 2018-2-5 11:45
支持大作了。

说实话ESET在低转速机械硬盘上的冷启动,让程序的启动确实是慢很多的,热启动的话,大概跟 ...

是的,虽然相对时差一样,但绝对时差很不一样
B100D1E55
 楼主| 发表于 2018-2-5 12:06:54 | 显示全部楼层
85683213 发表于 2018-2-5 11:52
现在杀软效能对云的影响非常大
建议还是看下当地连到云的延迟

云依赖严重的厂商优化客户到自家服务器的速度也是性能优化的一个环节……

我这里的测试全都是本地进行的,除了验证程序需要云查询其他应该影响不大。这里的测试都跑了多次,结果基本是一样的,如果厂商自己不缓存初次查询结果那是自己作死了
驭龙
发表于 2018-2-5 12:07:12 | 显示全部楼层
B100D1E55 发表于 2018-2-5 12:02
是的,虽然相对时差一样,但绝对时差很不一样

其实在国内BD是很卡网站显示速度的,而且一年前我玩的时候,性能真的没有比ESET好,不知测试的时候为什么遥遥领先,反正测评我向来是看看就好,还是相信自己的实际体验
B100D1E55
 楼主| 发表于 2018-2-5 12:08:02 | 显示全部楼层
本帖最后由 B100D1E55 于 2018-2-5 12:11 编辑
驭龙 发表于 2018-2-5 12:07
其实在国内BD是很卡网站显示速度的,而且一年前我玩的时候,性能真的没有比ESET好,不知测试的时候为什么 ...

可能和云查询有关。我这里的网页加载速度是测本地网页。这里的测试的确是有局限性,参见QA第一条
驭龙
发表于 2018-2-5 12:11:15 | 显示全部楼层
B100D1E55 发表于 2018-2-5 12:08
可能和云查询有关。我这里的网页加载速度是测本地网页。

是的,据说BD在国内没有反钓鱼数据库的服务器,所以等待服务器响应时间长很多。

另外就算本地启动应用程序和系统操作的时候,BD也真的没有达到评测机构的水平,尤其是影响Windows启动的速度
B100D1E55
 楼主| 发表于 2018-2-5 12:12:07 | 显示全部楼层
cloud01 发表于 2018-2-5 11:37
eset日常使用很流畅 ,这个不像查杀率 看测试 ,要看实际为主,卡巴测试很流畅,但可能针对测试项优化过 , ...

估计是因为文件还没缓存或者加载程序,卡巴对程序启动速度影响也比较大
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛|优惠券| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 苏ICP备07004770号 ) GMT+8, 2018-5-26 14:05 , Processed in 0.132924 second(s), 24 queries .

快速回复 返回顶部 返回列表