第6世代以降の AMD ベースの Elastic Compute Service (ECS) インスタンスでカーネルを更新すると、SRSO 脆弱性パッチによってパフォーマンスが低下する場合があります。SafeRET を無効にしてパフォーマンスを回復してください。
症状
AMD CPU を搭載した第6世代以降の ECS インスタンスで Linux カーネルまたは OS バージョンを更新すると、インスタンスのパフォーマンスが低下することがあります。
原因
最新の Linux カーネルには、デフォルトで SafeRET が有効になっている AMD Speculative Return Stack Overflow (SRSO) 脆弱性パッチが含まれており、インスタンスのパフォーマンスが低下する可能性があります。
SafeRET は、セキュリティチェックを追加することで SRSO 脆弱性を緩和しますが、プロセッサーのパフォーマンスが低下します。AMD は、ほとんどの本番環境では SRSO のリスクは低いとしています。SafeRET を無効にしてパフォーマンスを回復してください。「Speculative Return Stack Overflow Mitigation Options and Considerations for Public Cloud Users」をご参照ください。
ソリューション
grep . /sys/devices/system/cpu/vulnerabilities/* を実行し、有効な緩和策を確認してください。
-
spec_rstack_overflow エントリに SafeRET が含まれている場合、カーネルで SRSO 緩和策が有効になっており、特定のアプリケーションでパフォーマンスが大幅に低下する可能性があります。
-
ユーザーモードのアプリケーションが安全で、パフォーマンスへの影響を回避したい場合は、カーネルコマンドラインに
spec_rstack_overflow=offを追加し、再起動して 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、CentOS Stream、AlmaLinux、Rocky Linux、Fedora、または RHEL
grubby コマンドの実行
-
grubby コマンドが使用可能であることを確認します。
grubby ツールは RHEL ディストリビューションにプリインストールされています。次のコマンドで利用可能か確認します。
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 コマンドが使用可能であることを確認します。
grub2-mkconfig コマンドは RHEL ディストリビューションに含まれています。次のコマンドで利用可能か確認します。
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