文档

AMD实例更新GuestOS内核后, 可能出现性能下降问题的说明

更新时间:

本文介绍使用AMD CPU的ECS实例更新GuestOS内核后,可能出现性能下降问题的原因和解决方案。

问题描述

使用AMD CPU的ECS实例时(g6a/c6a/r6a、g7a/c7a/r7a、g8a/c8a/g8ae),在更新Linux操作系统版本或当前操作系统升级内核之后,出现性能降低问题。

问题原因

最新版本的操作系统,默认合入了AMD SRSO漏洞的修复包,并且默认为开启状态,该漏洞修复包可能会导致实例性能降低。

AMD认为,在一般的生产环境中,SRSO相关的整体安全风险较低,对于广大云用户使用者,AMD认为禁用SafeRET是合理的。更多信息,请参见AMD官方针对SRSO漏洞的说明

解决方案

您可以通过grep . /sys/devices/system/cpu/vulnerabilities/*查看当前生效的缓解措施。

  • spec_rstack_overflow的安全缓解措施中如有Safe RET,即表明使能了内核针对SRSO的安全缓解措施,但这会导致一些应用出现较大幅度的性能下降。

  • 如果您信任用户态应用程序,不希望受到性能影响,可以在内核命令行添加spec_rstack_overflow=off内核参数并重启,强制关闭SRSO的安全缓解措施。

使用云助手插件查询、开启、关闭SRSO的安全缓解措施

查询SRSO漏洞情况

sudo acs-plugin-manager -e -P ecs_amd_srso_config -p --status

开启SRSO的安全缓解措施

sudo acs-plugin-manager  -e -P ecs_amd_srso_config  -p --enable

关闭SRSO的安全缓解措施

sudo acs-plugin-manager -e -P ecs_amd_srso_config  -p --disable

手动开启、关闭SRSO的安全缓解措施

Alibaba Cloud Linux 、Anolis、CentOS、CentosStream、AlmaLinux、Rocky Linux、Fedora、RHEL系统

使用grubby命令修改
  1. 查看是否存在grubby命令。

    RHEL发行版的操作系统中,默认预装了grubby命令行工具,您可以通过以下命令查询。

    which grubby
  2. 根据业务需要,开启或关闭SRSO安全缓解错误。

    • 开启SRSO安全缓解错误。

      sudo grubby --update-kernel="$(grubby --default-kernel)" --remove-args="spec_rstack_overflow=off"
    • 关闭SRSO安全缓解错误。

      sudo grubby --update-kernel=ALL --args="spec_rstack_overflow=off"
  3. 重置实例,使配置生效。

    sudo reboot
使用grub2-mkconfig或grub-mkconfig命令修改

本操作以grub2-mkconfig为例进行说明,使用grub-mkconfig命令操作类似。

  1. 查看是否存在grub2-mkconfig命令。

    RHEL发行版的操作系统中,默认包含grub2-mkconfig,您可以通过以下命令查询。

    which grub2-mkconfig
  2. 根据业务需要,开启或关闭SRSO安全缓解错误。

    • 开启SRSO安全缓解错误。

      sudo sed -i "s/ spec_rstack_overflow=off//g" /etc/default/grub
    • 关闭SRSO安全缓解错误。

      sudo sed -i "/GRUB_CMDLINE_LINUX=\"/s/\"$/ spec_rstack_overflow=off\"/" /etc/default/grub
  3. 生成grub配置文件。

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  4. 重置实例,使配置生效。

    sudo reboot

Debian、Ubuntu系统

使用update-grub2或update-grub命令修改

本操作以update-grub2为例进行说明,使用update-grub命令操作类似。

  1. 查看是否存在update-grub2命令。

    which update-grub2
  2. 根据业务需要,开启或关闭SRSO安全缓解错误。

    • 开启SRSO安全缓解错误。

      sudo sed -i "s/ spec_rstack_overflow=off//g" /etc/default/grub
    • 关闭SRSO安全缓解错误。

      sudo sed -i "/GRUB_CMDLINE_LINUX=\"/s/\"$/ spec_rstack_overflow=off\"/" /etc/default/grub
  3. 生成grub配置文件。

    sudo update-grub2
  4. 重置实例,使配置生效。

    sudo reboot
  • 本页导读