核心观点与关键数据
Spectre 和 Meltdown 是现代微处理器中的架构缺陷,可能导致恶意软件窃取其他进程或应用程序的数据。2018 年初发现这些漏洞后,引发了对其影响的评估和修复方案的开发。初始补丁迅速出现,但存在两个主要问题:一是补丁对系统性能的影响,二是 Spectre 和 Meltdown 只是冰山一角,后续出现了更多类似漏洞。
漏洞修复与持续威胁
长期修复 Meltdown 和 Spectre 需要改变微处理器设计,消除侧信道缺陷。未来处理器将部分或完全免疫这些漏洞。然而,现有系统仍需软件补丁保护,尽管这会降低性能。补丁类型包括硬件制造商的固件更新、操作系统厂商的通用补丁以及应用程序厂商提供的补丁。
新一轮漏洞出现
2018 年 5 月,研究人员发现了一种新的侧信道漏洞,影响处理器寄存器和推测存储旁路 (SSB) 功能。当时尚未提供软件补丁,因此不在本次测试结果范围内。Spectre 和 Meltdown 的研究持续进行,新的漏洞不断被发现,形成“打地鼠”的局面。
补丁测试方法
Spirent 与一家大型云服务提供商合作,在真实服务器和工作负载上测试补丁的影响。测试环境包括两台相同的服务器,一台未打补丁作为对照,另一台打补丁以缓解 Spectre 和 Meltdown 的影响。服务器运行 CentOS 7.4,测试工具包括 Spectre 和 Meltdown 缓解检测工具、Spirent CloudStress 和 Spirent CloudScore。
测试结果
补丁对性能的影响显著:
- 计算性能:gzip 压缩性能下降 25%,7-Zip 下降 3%,内核编译时间下降 2%,UnixBench 指数下降 1%。
- 网络性能:Intra-AZ 延迟增加约 24%,抖动增加约 138%。
- 存储性能:写入吞吐量从 3,000 op/sec 下降到 2,700 op/sec(8M 4K 块),从 4,700 op/sec 下降到 2,800 op/sec(16M 4K 块)。
分析与建议
补丁导致性能下降的程度因服务器类型、处理器型号、操作系统内核和工作负载性质而异。例如,数据库读取密集型服务器与数据库写入密集型服务器的性能下降程度不同。虚拟化程度也会影响性能,如 OpenStack 环境中的网络 I/O 通信。
由于硬件、软件和工作负载的多样性,以及 Spectre 和 Meltdown 及其补丁的持续演变,无法提供通用指导。数据中心可能需要额外计算资源来抵消补丁的性能影响,但具体需求因情况而异。建议使用 Spirent CloudStress 和 Spirent CloudScore 等工具进行测试,以精确预测补丁影响,并采取相应措施。