vCPU ソフト ロックアップのトラブルシューティング


このドキュメントでは、vCPU のソフト ロックアップのトラブルシューティング方法について説明します。ソフト ロックアップは、仮想マシン(VM)インスタンスの vCPU が 20 秒を超えて新しいタスクを実行できない場合に発生します。ほとんどのソフト ロックアップは、アプリケーション ソフトウェアのバグが原因で発生します。

ソフト ロックアップが発生すると、VM が短時間応答しなくなり、VM への SSH アクセスが中断され、アプリケーションのタイムアウトまたはフェイルオーバーがトリガーされる可能性があります。ソフト ロックアップが発生している VM では、ソフト ロックアップの正確な原因に応じて、CPU 使用率が異常に高くなるか、異常に低くなることもあります。

ソフト ロックアップを特定する

VM でソフト ロックアップが発生しているかどうかを特定するには、次のいずれかを行います。

ソフト ロックアップのスタック トレース例

watchdog: BUG: soft lockup - CPU#3 stuck for 22s!

今後のソフト ロックアップを検出するには、次の操作を行います。

  1. シリアルポート出力ロギングを有効にします

  2. 次のログに対してログベースのアラート ポリシーを作成します。

    resource.type="gce_instance" log_id("serialconsole.googleapis.com/serial_port_1_output") textPayload=~"watchdog.*lockup"
    

ソフト ロックアップのトラブルシューティング

ソフト ロックアップが発生していることを確認したら、次のトラブルシューティングの手順で問題を解決してください。

  1. OS のバージョンに関する既知のエラーについては、OS ベンダーのサイトでご確認ください。スタック トレース内に特定のカーネル モジュールへの参照が見つかり、関連する特定の関数またはオペレーションが示唆されることがあります。
  2. 高負荷や特定のアクティビティと一致するなど、ソフト ロックアップが頻繁に繰り返されるかどうかを特定します。ソフト ロックアップが高負荷と関連している場合は、より大きな VM を使用するか、複数の VM に負荷を分散するなど、ワークロードを再構成する必要があります。
  3. ソフト ロックアップが、新しいソフトウェアのデプロイや OS イメージの更新など、ランタイム環境の変更と関連しているかどうかを確認します。
  4. システム イベント監査ログの監査ログを確認して、ソフト ロックアップの発生時にメンテナンス イベントが発生したかどうかを評価します。

上記のトラブルシューティング手順で問題が解決しない場合は、サポートケースを作成し、トラブルシューティングで収集したすべての情報を含めます。

ソフト ロックアップを回避するためのベスト プラクティス

VM でソフト ロックアップが発生しないようにするには、次のベスト プラクティスを実装することをおすすめします。

  • 特定の VM でソフト ロックアップが長時間続いた場合にフェイルオーバー機能を提供できるように、高可用性クラスタなど、システムに適切な冗長コンポーネントが構成されていることを確認します。詳細については、堅牢なシステムの設計をご覧ください。
  • コンピューティング負荷の高いワークロードの場合は、コンピューティング最適化マシン ファミリーの使用を検討してください。
  • シミュレートされたメンテナンス イベントでワークロードをテストして、ライブ マイグレーション中(有効な場合)のワークロードのパフォーマンスを確認します。特に、負荷テストで確認します。
  • VM でカスタム Linux カーネルまたはカスタム モジュールを実行している場合は、本番環境にデプロイする前に、負荷がかかった状態で新しい変更をテストします。カスタム変更が OS ベンダーからのサポートを受けられない原因にならないことを確認します。
  • オペレーティング システムを最新の状態に保つ。詳しくは、オペレーティング システムの詳細をご覧ください。