本文介绍使用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命令修改
查看是否存在grubby命令。
RHEL发行版的操作系统中,默认预装了grubby命令行工具,您可以通过以下命令查询。
which grubby
根据业务需要,开启或关闭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"
重置实例,使配置生效。
sudo reboot
使用grub2-mkconfig或grub-mkconfig命令修改
本操作以grub2-mkconfig为例进行说明,使用grub-mkconfig命令操作类似。
查看是否存在grub2-mkconfig命令。
RHEL发行版的操作系统中,默认包含grub2-mkconfig,您可以通过以下命令查询。
which grub2-mkconfig
根据业务需要,开启或关闭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
生成grub配置文件。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
重置实例,使配置生效。
sudo reboot
Debian、Ubuntu系统
使用update-grub2或update-grub命令修改
本操作以update-grub2为例进行说明,使用update-grub命令操作类似。
查看是否存在update-grub2命令。
which update-grub2
根据业务需要,开启或关闭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
生成grub配置文件。
sudo update-grub2
重置实例,使配置生效。
sudo reboot
- 本页导读