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

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

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

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

但是,您可以通过添加pti=off ( 内核补丁添加此选项,更多信息 )到内核命令行( howto )来有效地禁用补丁。 请注意,这样做会导致系统安全性降低。

在PostgreSQL邮件列表中启用和禁用PTI的更多信息和性能测试 – TLDR的性能影响在10%到30%之间(对于ProstgreSQL,即游戏等其他东西可能会看到更少的影响) 。

请注意,这只会影响英特尔处理器,因为AMD 显然不会受到影响 ( reddit ),因此默认情况下AMD可能会禁用此function。

更新:问题已经给了一对绰号: Meltdown和Spectre 。 我用新信息更新了答案。

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

您解决此问题的方法无关紧要。 你要求绕过一些既不知道bug的真正影响,又不知道修复它的性能成本的东西。

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

  • 表现可能并不像你担心的那么大。 人们关注的数字集中在理论子系统性能或最坏情况。 缓存不佳的数据库会受到最严重的打击。 游戏和日常用品可能不会发生明显的变化。

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

不要开始使用标志预加载GRUB配置,或者暂时删除内核元包。

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

使用nopti内核命令行参数

据Phoronix说 。

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

 sudo update-grub 

然后重新启动。

要了解有关内核引导参数的更多信息,请查看Ubuntu Wiki 。

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

– >安全选项

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

然后编译新内核

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

spectre_v2 = off nopti pti = off