Intel漏洞门性能影响深度测试:果然优化了过于流畅的Bug

大红鹰葡京会

2018-03-02 20:11:28

2018年年初,Intel突然投下一颗震撼弹,CPU被确认包含严重的安全漏洞。由Intel开始各家CPU厂商均被卷入,甚至连NVIDIA都宣布更新显卡驱动来修补相关漏洞。

由于这次的漏洞事件波及甚广,且具有很强的攻击能力,所以从软件到操作系统,甚至CPU固件都必须更新。

现在修补措施大致到了初步完善的程度,所以针对现有的修补措施对漏洞门带来的影响做一次较为详细的测试。

Intel 漏洞门简述:

首先简单介绍一下这次的漏洞门事件。

- 漏洞的分类:这次的漏洞门产生了Meltdown(熔断)和Spectre(幽灵)两个主要的漏洞分支。

- 影响的厂商:Intel(1995年起几乎全线的产品)、AMD、ARM的CPU大都不同程度地受到波及,NVIDIA也宣称显卡需要更新驱动。

- 漏洞的危害:漏洞门会导致专门设计的病毒软件可以直接读取设备内存中的任何部分,所有的系统内核保护和安全软件的沙盒都会直接失效。

- 漏洞的修补:漏洞的修补主要分为四个部分,浏览器内核更新、系统补丁安装、CPU微码升级(刷BIOS)、显卡驱动更新(NV)

- 漏洞修补的分级:浏览器和系统补丁等软件更新主要针对“熔断”;CPU微码和显卡驱动主要针对“幽灵”。

- 修补的后果:修补后会明显降低CPU的性能,按照CPU的迭代,越是古老的产品受到的影响越明显。CPU的日常使用功耗会明显上升。

- 修复效果的确认:GRC上发布的软件“inspectre”可以帮助大家快速诊断漏洞修复的程度,显示绿色的“NO”即代表对相应的漏洞可以免疫。

各家厂商受到的影响及应对建议(针对PC市场):

首先说一下软件的修补进度,目前浏览器和操作系统均提供了针对性的更新,下文中就不再反复提及。

Intel:

- 波及程度:Intel是波及程度最深的(因为是乱序执行最坚定的拥趸),“熔断”和“幽灵”均中招。

- 修补方式:需要针对浏览器内核更新、系统补丁安装、CPU微码升级(刷BIOS)进行全部更新。

- BIOS进度:目前115X主流级别,从第六代及以上会有BIOS更新;X系列,从X99平台及以上会有BIOS更新。需要注意各家主板厂商的BIOS修复进度并不相同,甚至会出现BIOS中部分微码更新并不到位的情况。

- 性能变化:

同时做软件和BIOS修复的情况下,对性能的影响是最大的。目前针对Intel部分我这边的测试数据比较齐全,所以就详细分解一下。需要备注的是无论是什么修复方式,磁盘性能都会明显受到影响,这边主要讨论的是实际使用的性能变化。

第八代酷睿:八代酷睿通过超频L2较好的抵消了性能损失,总体变化相对较小。

第六、七代:在只进行软件修复的情况下,性能损失并不明显。缓存的补偿较少,所以软硬件同时修补的情况下,多核性能有较为明显的性能损失。

第四、五代:目前并没有BIOS放出,只针对软件更新的话,目前已知以5820K为例,满载转码的性能损失在8%左右。预计第四、五代产品的影响会大于 第六、七代的产品。

更早产品:由于缓存机制上第四代起有较大的更新,所以预计单纯软件修补也会带来较为显著的性能损失。(微软官方的说法用户可以明显感知到的性能损失)

- 功耗变化:

进行修复之后CPU的负载会比以前更高,相应功耗会增大。尤其是在办公、看片、上网等场景变化尤其明显。第八代酷睿主要是依靠超频L2来抵消修复的性能损失,所以在低负载场景下,功耗最高会提升30%。

- 修复建议:

由于本次漏洞门中JS代码比较容易受到攻击,预计浏览器会是主要的受攻击媒介。所以无论什么情况下,都必须更新浏览器,国产浏览器用户建议用回相 应内核的官方浏览器(国产浏览器内核更新肯定很渣)。

建议第六代及更新的CPU用户应更新微软的系统补丁,这样对性能损失并不会太显著。BIOS建议不要更新。

第四、五代的CPU用户,更新补丁预计满载性能下降较大,但安全起见还是建议更新。BIOS现在暂时没有上,想更新也更新不了。

更早产品的用户,预计CPU性能影响更大,是不是更新系统补丁我表示很蛋疼。但是无论如何,浏览器都必须使用最新版内核,不然会死的很惨。

- 注意事项:

目前Intel的CPU微码被认定会导致电脑出现死机重启的状况,DELL、HP、华擎都已经宣布下架相关的BIOS。如果BIOS更新后出现相关状况,建议尝试回滚BIOS版本。

即使是拿到了CPU微码,还是不建议大家自行修改BIOS进行更新,可能会产生额外的BUG。

由于部分厂商对Intel微码做了回滚撤回处理,所以不排除后续Intel更新微码后,性能再次出现变化的可能性。

目前Intel又让微软再次发布了屏蔽Intel BIOS漏洞修复补丁的补丁(真TM绕),相比系统补丁方式屏蔽,个人还是更加建议大家直接回滚BIOS。

AMD:

- 波及程度:AMD“熔断”是确认免疫的,但是“幽灵”还是会中招。

- 修补方式:需要针对浏览器内核更新、系统补丁安装、CPU微码升级(刷BIOS)进行全部更新。

- BIOS进度:目前AMD已经宣布提供微码给主板厂商,但暂时还没有看到具体的BIOS更新。

- 性能变化:由于BIOS暂未发布,所以实际的性能影响未知。但从各方的消息来看,影响程度应小于Intel。

- 功耗变化:暂不确定。

- 修复建议:目前的话只要针对浏览器和操作系统进行更新即可,主板BIOS还需要等待。

- 注意事项:微软第一版的系统补丁对AMD较早的CPU产品(速龙、皓龙等)支持会有问题,导致微软收回第一版补丁。目前只要是微软自动更新的补丁都可以正常使用,建议下载离线包的话要注意确认补丁代号。

NVIDIA:

- 波及程度:“熔断”是确认免疫的,但是“幽灵”还是会中招。

- 修补方式:更新显卡驱动即可。

- BIOS进度:不存在的。

- 性能变化:根据初步的粗略测试,性能影响不大。

- 功耗变化:暂不确定。

- 修复建议:目前的话只要针对浏览器和操作系统进行更新即可,主板BIOS还需要等待。

- 注意事项:暂无。

测试平台介绍:

由于目前只有Intel有完整的修补方案,所以暂时先针对Intel来测试。AMD的部分需要等BIOS放出后再来测试。

这次测试主要用到的i3-8100和i5-7500,可以较好地7覆盖到目前BIOS更新较完善的6、7、8三代产品的变化。

八代酷睿的测试平台是Z370-HD3。

七代酷睿的测试平台是Z270-Phoenix GAMING。

内存是海盗船的DDR4 8G*4。实际运行频率是2666C15。

显卡采用的是迪兰恒进的VEGA 64水冷版。

SSD是三块Intel,系统盘用的是比较主流的535,以保证测试更接近一般用户。240G用作系统盘,480G*2主要是拿来放测试游戏。游戏越来越多,只能加SSD了。

为了稍后测试MVNe效率,这边还用到了750 400G。

散热器是九州风神的船长240RGB。

测试平台是Streacom的BC1。

测试项目简述:

相比一般的测试,这次的测试项目设计上会略显复杂一点,所以首先进行说明。

本文测试会分为简略结论和详细测试两个部分,由于补丁测试的个体项目差异会很明显,里面会有很多有意思的东西。所以还是建议大家还是应该去看详细测试数据。

测试数据中结合了我以前漏洞门测试的文章,所以测试数据会有五列。其中会以i3-8100初始状态作为对比基准。

- i3-8100未升级测试(初始状态,包含完整测试数据,作为测试基准)

- i3-8100完全升级测试(完全补全状态,包含完整测试数据)

- i5-7500未升级测试(初始状态,仅包含CPU部分测试数据)

- i5-7500系统升级测试(系统补丁安装但BIOS未更新,仅包含CPU部分测试数据)

- i5-7500完全升级测试(完全补全状态,包含完整测试数据)

性能测试项目介绍:

对于有兴趣进一步了解对比性能的童鞋,这边会提供详细的测试数据。如果不想看的话可以直接跳到最后的总结部分。

测试大致会分为以下一些部分:

- CPU性能测试:包含系统带宽、CPU理论性能、CPU基准测试软件、CPU渲染测试软件、3DMARK物理得分

- 集成显卡测试:包含集显基准测试软件、集显游戏测试、集显专业软件基准

- 搭配独显测试:包含独显基准测试软件、独显游戏测试、独显专业软件基准

- 功耗测试:在集显、独显平台下进行功耗测量

CPU性能测试与分析:

测试表格说明,为了帮助大家跟好的甄别,所以这边我会把性能缩水比较明显的项目用颜色标出来。8100对比组黄色是性能差距4%,红色是性能差距10%。7500上,考虑到原生7500相比8100性能会有1~2%的差异,所以7500的标示上会相应压缩1%,黄色是性能差距3%,红色是性能差距9%。

系统带宽测试,内存带宽上,漏洞修补带来的变化很小。缓存带宽上分化则比较明显。8100明显在L2上有比较大的提升,平均超过10%。而7500在L2和L3上都出现了一定成都的下滑,尤其是L2的读取和L3的复制变化尤其明显。

CPU性能测试,主要测试一些常用的CPU基准测试软件,还会包括一些应用软件和游戏中的CPU测试项目。这个项目的测试总体比较杂,更接近于一般使用环境。

最为显眼的莫过于PCMARK 8测试,7500崩盘的比较明显,8100则在ADOBE这一项上有较大的缩水。

另外由于两颗CPU在缓存优化的策略上有差异,所以7-ZIP和WINRAR的性能差异明显拉大(8100略微提升,7500略微降低)。

CPU渲染测试,测试的是CPU的渲染能力。CineBench三个版本测试,8100在R10的OPENGL测试中表现尤其不好,R11上多线程性能也有明显下降。7500则在三个版本的多线程测试中均出现了明显的性能下滑,且版本越新情况越严重。

3D物理性能测试,测试的是3DMARK测试中的物理得分,这些主要与CPU有关。8100总体表现尚数平稳,仅ICE EX这一项下滑比较大。而7500则呈崩盘之势,整体表现相当不好。

CPU性能测试部分对比小节:

CPU综合统计来说8100整体的受影响程度较小,变化不大。7500则随着负载的增加,性能逐步递减,这也印证了Intel关于漏洞门对低负载影响较少的论述。从漏洞修补的角度来看,7500的性能影响主要源于BIOS的更新,系统补丁影响较小。

其实还有一个比较纠结的问题就是单线程和多线程,这边也做了一下分解。

单线程:8100基本上变化不大。7500则相对更加明显,不过幅度也不算大。

多线程:8100基本上变化不大。7500的受影响幅度较大,达到了5%左右。

集显性能测试:

集显3D基准测试,主要是跑一些基准测试软件,与理论性能测试,集显性能基本不受影响。受CPU性能影响最大的ICE测试中,7500的表现比较糟糕。

集显专业软件基准测试,专业软件部分以SPEC viewperf 12为基准测试,两者总体变化都不是很大,不过7500有一项下滑达到了5%。

集显性能测试小节:

总的来说集显性能受影响并不多。

搭配独显测试:

现在显卡更新为VEGA 64水冷版,这样显卡的瓶颈问题会解决很多。

独显3D基准测试,主要是跑一些基准测试软件,总体上性能影响较小,不过可以明显看到不同的测试项目性能变化比较大,有相当多的项目出现了较明显的性能下滑。但3DMARK的X分,CATZILLA的4K有明显提升。

独显3D游戏测试,表格中将DX9~DX12不同世代的游戏进行了分类,这样会更加清晰一些。

8100的游戏性能变化比较杂,27款游戏中有11款出现比较明显的性能下滑,而尘埃拉力赛和中土世界战争之影则逆势提升10%左右。

7500的游戏性能测试表现比8100还是要更弱一些(考虑到原生性能略高),27款游戏中有7款出现比较明显的下滑,所以可见7500的整体下滑更为平均。

按照API世代来分解,从前面测试中就可以发现如果是取平均数,性能下滑幅度不会特别明显。相对而言,这次的补丁对DX11游戏相对友好,DX9和DX12游戏下滑幅度会比较明显。

分解到分辨率来看的话,1080P受到的影响高于4K分辨率,说明游戏中CPU的性能表现还是有下滑的。

独显专业软件基准测试,专业软件部分以SPEC viewperf 12为基准测试,这个测试是针对显卡的专业运算测试,可以看到有两个项目性能下滑比较明显。

搭配独显测试小节:

从测试结果来看,虽然总体性能下滑幅度并不大,但是还是要看具体的测试项目,部分项目性能下滑非常显著。

磁盘性能测试:

磁盘测试部分用的是CrystalDiskMark 5,1G的数据文件跑9次,这样基本可以排除测试误差。测试的SSD分别是535 480G和750 400G,都是挂从盘。

简单科普一下这个测试里的概念,SATA接口和PCI-E通道都是可以从CPU或芯片组引出的(看CPU厂商怎么设计)。这边为了统一,测试的都是芯片组引出的SATA和CPU引出的PCI-E。

从测试结果上来看,真心是比较崩。图表中的统计是对测试项目简单取平均数,如果按照AS SSD这类软件的加权体系,预计表格出来会更难看。

总体来说读取受影响的程度会比写入略好一点。8100在SATA SSD的测试中性能表现尚数正常,但是NVME的测试中,读写的4K深队列都严重下滑,不足原来的60%,浅队列的4K写入也有30%的下滑。

7500的状况就更差了,SATA的部分就能看到非常严重的下滑。NVME的测试则与8100的情况比较接近。

考虑到我用的535属于性能优化十分温和的产品,如果使用性能更为激进的SATA SSD,跑分差距应该会更明显。

平台功耗测试:

8100性能大致保持住代价还是比较大的,集显模式下待机功耗提高了30%,独显模式下也提高了近25%。

较为突出的是8100在4K游戏下功耗相比原生状态明显提升,这也解释了为什么部分游戏4K下性能会有上浮。

7500在待机时功耗提升并不大,但满载时功耗还是比较高的。可能是因为7700K这颗热得快的关系,Intel对7代酷睿总体的调教比较保守。

简单总结:

关于CPU的性能:

从测试结果来看八代酷睿经过调教,总体性能变化并不会很大,而七代则会明显一些。

CPU综合性能上,8100的总体影响较小,基本保持原来的性能。7500多核满载性能影响较大,考虑到8100与7500的原生性能差距,实际7500的性能下降会在5%左右

游戏性能上,8100与7500整体上受影响都不算很大,不过7500部分游戏性能损失较为显著。

功耗表现上,8100由于L2超频,功耗提升较为明显,待机与高清测试平均上升20% 。7500原生功耗就较高,但也有一定的功耗上升。

关于CPU的功耗:

八代酷睿的功耗提升比较明显,对于散热选择比较紧张的人,应该要考虑一下散热问题。8600K及以上的CPU建议主板至少需要七相供电。

关于漏洞修复的策略:

1月29日,Intel又让微软再次发布了屏蔽Intel BIOS漏洞修复补丁的补丁。

在更早的时间,Intel还宣布会发布完全硬件修补的新架构的CPU,不过预计中间还会夹一代14nm的产品。Cannon Lake还要往后推,果然产品名字叫了Canno的都会牙膏。

所以现阶段必做的还是浏览器和系统层面的补丁,其他的还是先做吃瓜群众比较好。

至于漏洞门的性能测试要出到第几篇才是大结局?2017的CPU盘点什么时候能做?我也很绝望啊!