当前位置: 首页>>技术问答>>正文


如何禁用页表隔离以重新获得因英特尔CPU安全漏洞补丁而导致的性能损失?

, , , ,

问题描述

由于当前的英特尔CPU安全漏洞问题,预计会有一个补丁降低系统性能。

如何确保我的Ubuntu系统上不会安装此补丁?

最佳解决方案

补丁(又名“页表隔离”)将成为正常内核更新的一部分(更新系统时将获得该更新)。但是,强烈建议保持内核最新,因为它还可以获得许多其他安全修复程序。所以我不建议只使用没有修复的过时内核。

但是,您可以通过将pti=off(kernel patch adding this option, with more info)添加到内核命令行(我如何添加内核启动参数?)来有效地禁用该修补​​程序。请注意,这样做会导致系统安全性降低。

PostgreSQL mailing list上启用和禁用PTI的更多信息和性能测试 – TLDR的性能影响在10%到30%之间(对于ProstgreSQL,其他事项 – such as games可能会看到更少的影响)。

请注意,这只会影响英特尔处理器,如AMD is apparently unaffected(reddit),因此默认情况下,这可能会在AMD上被禁用。

次佳解决方案

更新:问题已经给出了一对标记:Meltdown and Spectre。我用新信息更新了答案。

它最初将是一个内核补丁。它会显示为更高版本。它将被安装,因为您安装了linux-image-generic。这就是那个包的用途。所以你可以删除linux-image-generic。这是一个可怕的,灾难性的想法,它会让你暴露给all sorts of nasties,但你可以做到。在linux-firmware中可能还有CPU微码,用于in-CPU修复。这真的是在英特尔。

您遵循un-fix的方法无关紧要。你要求绕过一些既不知道bug的真正影响,又不知道修复它的性能成本的东西。

  • 这个bug很讨厌。报告的CVE是跨进程内存读取。任何进程都能够读取任何其他进程的内存。输入,密码,整个。这也可能对沙箱产生影响。这是很早的时候,我希望人们在影响和访问方面进一步推动这一进程。

  • 表现可能并不像你担心的那么大。人们倾向于关注理论子系统性能或最坏情况。缓存不佳的数据库会受到最严重的打击。游戏和day-to-day的东西可能不会发生明显变化。

即使是现在我们也可以看到实际的错误,现在说出影响是为时尚早。虽然对RAM的免费读取访问很糟糕,但还有更糟糕的事情。我还要测试一下修复程序对你的影响程度(用你做的事情)。

不要使用标志启动pre-loading你的GRUB配置,或者删除内核元包。

第三种解决方案

虽然我不建议这样做,但可以禁用PTI

with the nopti kernel command-line parameter

根据Phoronix

为此,将nopti附加到/etc/default/grub中以GRUB_CMDLINE_LINUX_DEFAULT开头的行旁边的字符串,然后运行

sudo update-grub

然后重新启动。

有关禁用performance-relevant安全功能的内核引导参数的更多信息,请参阅:Spectre&Meltdown MitigationControls in Ubuntu Wiki

第四种方案

最简单的方法:取消选中内核配置

– >安全选项

[]在用户模式下删除内核映射

然后编译新内核

第五种方案

在grub中将以下内容添加到内核参数的末尾: –

spectre_v2=off nopti pti=off

内核参数描述于:https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown/MitigationControls

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2510.html,未经允许,请勿转载。