如何使Linux系统在英特尔CPU上运行更快

时间:2020-03-21 11:48:12  来源:igfitidea点击:

我们可能听说过影响许多现代处理器的熔化和幽灵漏洞,包括英特尔,AMD,系统Z,动力和臂的某些处理器。

值得庆幸的是,内核开发人员发布了安全修补程序来解决ectdown /幽灵问题。
在最近的内核版本中,修补程序默认实现。
尽管安全补丁有助于减轻漏洞,但它们也会影响系统的性能。
是的,减轻会导致绩效命中。
如果我们有信心系统受到良好保护的,并且希望我们可以从个人系统中获取的每一盎司的性能,本教程适合我们。
本文简介介绍如何使Linux系统在英特尔CPU上运行更快,通过关闭幽灵和熔化缓解。

谨慎一句话

在实施以下解决方案之前,我必须警告我们,这是非常不安全的,不推荐。
这将禁用英特尔CPU上的所有幽灵和熔化缓解,并将Linux系统敞开通向所有安全风险。
除非你清楚地知道你在做什么,否则不要这样做。
你被警告了!

如果我们只是不关心安全性,请继续,并禁用如下所述的缓解。

制作Linux系统在英特尔CPU上运行更快

使用首选文本编辑器编辑GRUB文件。

在Debian,Ubuntu:

$sudo nano /etc/default/grub

如果我们使用的是Linux内核5.1.13版和较新版本,请在下面添加/编辑以下内核参数:

GRUB_CMDLINE_LINUX="mitigations=off"

这将禁用所有可选的CPU缓解。
这提高了系统性能,但它也可能将用户暴露给几个CPU漏洞。

如果我们正在使用超过5.1.13的内核版本,请添加/编辑以下内容:

GRUB_CMDLINE_LINUX="noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"

这些是我们可以用于禁用正在减慢Linux系统的所有幽灵/熔化缓解的内核参数。

知道每个旗帜的作用是什么:

  • NOIBRS - 禁用间接分支限制在微代码中的猜测。
  • noibpb - 禁用间接分支预测障碍。
  • nopti - 它与pti =关闭相同。控制页面表隔离用户和内核地址空间。禁用此功能删除硬化,但提高了系统调用和中断的性能。
  • nospectre_v2 - 禁用幽灵变体2(间接分支预测)漏洞的所有缓解。系统可能允许使用此选项泄漏,这相当于频谱_v2 =关闭。
  • nospectre_v1 - 禁用幽灵变体1的缓解(绑定检查旁路)。通过此选项,系统可以在系统中泄漏。
  • L1TF =影响CPU对L1TF漏洞的关机缓解。内核PTE反转保护无条件启用,无法禁用。禁用虚拟机管理程序缓解,并不会发出任何警告。它还放下交换尺寸和可用的内存限制限制在虚拟机管理程序和裸机上限制。
  • noSpec_store_bypass_disable - 禁用推测商店绕过漏洞的所有缓解。
  • no_stf_barrier - 禁用存储转发屏障(仅限PPC)。
  • MDS =微架构数据采样(MDS)漏洞的关机控制缓解。
  • TSX = ON - 启用英特尔的TSX(事务同步扩展)支持。
  • tsx_async_abort =关闭 - 禁用TAA(TSX异步中止)缓解。
  • 缓解= OFF - 禁用所有缓解。

有关每个标志的更多详细信息,请快速谷歌搜索。

添加内核参数后,使用命令更新GRUB配置:

$sudo update-grub

最后,重新启动系统:

$sudo reboot

在基于RPM的系统上,如CentOS和Rhel,编辑/etc/sysconfig/grub文件:

$sudo /etc/sysconfig/grub

在grub_cmdline_linux中添加上述参数。
然后使用命令更新GRUB配置:

$sudo grub2-mkconfig

最后重启:

$sudo reboot

在一些Linux系统中,我们可能需要在"grub_cmdline_linux_default ="..."中添加这些内核参数。

我们现在已禁用所有幽灵和熔化缓解。
这将提升系统的性能一点点,但它也可能将用户暴露给几个CPU漏洞。

检查幽灵/熔化缓解是否已禁用

我们可以使用"Specter-Meltdown-checker"工具,识别Linux中的幽灵和熔点漏洞。
它可以在一些Linux发行版的官方存储库中提供。

在Debian,Ubuntu:

$sudo apt install spectre-meltdown-checker

在CentOS,Rhel:

$sudo yum install epel-release
$sudo yum install spectre-meltdown-checker

关于Fedora:

$sudo dnf install $sudo apt install spectre-meltdown-checker

安装Specter-Meltdown-Checker后,将其作为root用户运行或者使用sudo权限检查幽灵和熔化缓解是否已关闭:

我们应该看到下面的消息。

[...]
> STATUS: VULNERABLE (Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers)
[...]
> STATUS:  VULNERABLE  (IBRS+IBPB or retpoline+IBPB is needed to mitigate the vulnerability)
[...]
> STATUS:  VULNERABLE  (PTI is needed to mitigate the vulnerability)

或者,我们可以查看如下所示的幽灵/熔点漏洞。

$ls /sys/devices/system/cpu/vulnerabilities/

示例输出:

itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort

和..

$grep . /sys/devices/system/cpu/vulnerabilities/*

示例输出:

/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable; SMT Host state unknown
/sys/devices/system/cpu/vulnerabilities/meltdown:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable, STIBP: disabled
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected

运行一些基准,并检查我们将获得多少性能,然后决定是否值得禁用一切。

正如我已经警告的那样,这个提示是家庭或者单用户计算机的有用而明智的选择。
但不推荐生产系统。