2018年初曝光的Meltdown与Spectre漏洞已经发展出6个变种,几乎所有的CPU为了修补这些漏洞,不得不承受性能降低的影响。除了等待未来从硬件基础上完全免疫的新CPU之外,微软还给大家带来一个免费福利,大家的电脑性能有望回血。
上图中右侧的小幽灵就是Spectre漏洞的标志,它手中的小树枝代表着该漏洞攻击的目标——CPU的分支预测机制。
现代CPU为了提升性能,会使用分支预测来提高程序执行效率,但分支预测也带来了侧信道攻击的可能。包括英特尔、AMD和很多ARM架构的处理器都面临同样的Spectre漏洞。为了防御针对漏洞的攻击,补丁程序不得不让CPU每次进入内核模式时清空部分CPU缓存区域,从而导致性能下滑。 涉及大量用户态与内核态切换的程序受到的性能影响最大。作为漏洞的发现者,谷歌提出了名为RETPOLINE的编程技巧,可将Spectre漏洞补丁带来的性能影响降至最低。下图中瞎眼的幽灵,即代表可阻止恶意程序利用漏洞偷窥数据的补丁机制。
这一方法早已被谷歌应用在自家数据中心当中,微软跟进之后的成果就是在最新Windows10 19H1预览版中开启了RETPOLINE,号称可以将漏洞补丁带来的性能影响降低到“背景噪声”级别的可忽略水平。新系统的效果真的有那么好吗?存储极客还是利用固态硬盘性能测试来验证这一点。下图是存储极客用来测试的固态硬盘——东芝TR200。
固态硬盘随机读写指令的每一步都涉及到CPU在用户态和内核态的切换,因而是最能体现漏洞补丁对CPU性能影响的方式。存储极客选择东芝TR200作为测试对象,一方面是因为它作为原厂固态硬盘的性能表现稳定,另一方面它的东芝TC58NC1010GSB主控还具备独特的数据压缩特性,在日常使用中能够提升实用性能,在这里则能够最大化体现CPU性能变化。
我们日常的固态硬盘测试,其实不仅仅是对硬盘性能的检验,软件发出的随机读写指令同时也是对CPU效能的认证。假如CPU发出指令的效率不够高,体现在SSD测试分数中就是较低的随机读写带宽或IOPS数值。 使用All 0 Fill数据模型进行测试,通过CrystalDiskMark成绩可以非常清楚的看到RETPOLINE对性能的提升和改善效果,4K随机读写带宽提升意味着CPU进出内核态发送IO指令的效率提升了,Spectre漏洞补丁对性能的损害幅度缩小。
不过假如跟完全关闭Spectre漏洞补丁的性能相比,RETPOLINE算法也并没有将影响降低至可忽略“背景噪声“的水平。下图是禁用全部CPU漏洞补丁后的东芝TR200 240G固态硬盘测速:单线程4K随机读取性能比打补丁后高18.3%。
不过不管怎么说,这已经是一个不错的进步,重要的是微软免费送出的CPU提速福利,在极端条件下这个最新的测试版系统相比现在大家正在使用的正式版1809系统快出20%以上。不出意外的话大家在明年4月份发布的下一个春季正式版更新当中就能体会到。 要彻底消除CPU漏洞补丁带来的不利性能影响,还需要寄望于英特尔和AMD能修改硬件底层涉及,从根本上消除这些漏洞。目前刚刚上市的第九代酷睿仅仅能免疫2个Meltdown变种,其他4个变种依然需要靠影响性能的固件或软件方式加固防御。 |
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.