すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:AMD インスタンスの GuestOS カーネルを更新した後にパフォーマンスが低下した場合はどうすればよいですか?

最終更新日:May 10, 2025

このトピックでは、AMD CPU を搭載した Elastic Compute Service (ECS) インスタンスの GuestOS カーネルを更新した後にパフォーマンスが低下する問題の原因と解決策について説明します。

問題の説明

第 6 世代以降の AMD CPU を搭載した ECS インスタンスの Linux オペレーティングシステムのバージョンを更新した後、または現在の Linux オペレーティングシステムのカーネルを更新した後、インスタンスのパフォーマンスが低下する場合があります。

原因

デフォルトでは、AMD の投機的リターンスタックオーバーフロー (SRSO) の脆弱性を修正するためのパッチが Linux オペレーティングシステムの最新バージョンに組み込まれており、SafeRET 緩和策が有効になっています。 これにより、インスタンスのパフォーマンスが低下する可能性があります。

説明

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 の脆弱性に対する緩和策をクエリ、有効化、および無効化する

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 コマンドを実行する
  1. grubby コマンドが存在するかどうかを確認します。

    デフォルトでは、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 コマンドは、grub2-mkconfig コマンドと同様の方法で使用できます。

  1. grub2-mkconfig コマンドが存在するかどうかを確認します。

    デフォルトでは、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. GRand Unified Bootloader (GRUB) 構成ファイルを生成します。

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  4. 設定を有効にするには、インスタンスを再起動します。

    sudo reboot

Debian または Ubuntu

update-grub2 または update-grub コマンドを実行する

この例では、update-grub2 コマンドを使用します。 update-grub コマンドは、update-grub2 コマンドと同様の方法で使用できます。

  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