问题描述
由于当前的英特尔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
参考资料
- How to disable Page Table Isolation to regain performance lost due to Intel CPU security hole patch?