Elastic Network Adapter Windows ドライバーのトラブルシューティング - Amazon Elastic Compute Cloud

Elastic Network Adapter Windows ドライバーのトラブルシューティング

Elastic Network Adapter (ENA) は、オペレーティングシステムのヘルスを向上し、Windows インスタンスのオペレーションを中断させる可能性のある予期しないハードウェア動作や障害を減らすように設計されています。ENA アーキテクチャでは、デバイスやドライバーの障害がオペレーティングシステムに対して可能な限り透過的に保持されます。

Elastic Network Adapter (ENA) ドライバーのインストール

インスタンスが Amazon 提供の最新の Windows Amazon マシンイメージ (AMI) に基づいていない場合は、次の手順を実行して現在の ENA ドライバーをインスタンスにインストールします。この更新は、インスタンスを再起動できる時に実行する必要があります。インストールスクリプトがインスタンスを自動的に再起動しない場合は、最後のステップとしてインスタンスを再起動することをお勧めします。

インスタンスの実行中にインスタンスストアボリュームを使用してデータを保存した場合、そのデータはインスタンスを停止すると消去されます。インスタンスを停止する前に、必要なデータをインスタンスストアボリュームから永続的ストレージ (Amazon EBS や Amazon S3 など) にコピーしていることを確認します。

前提条件

ENA ドライバーをインストールまたはアップグレードするには、Windows インスタンスが次の前提条件を満たしている必要があります。

  • PowerShell バージョン 3.0 以降がインストールされていること

ステップ 1: データをバックアップする

[デバイスマネージャー] を通じて変更をロールバックできない場合に備えて、バックアップ AMI を作成することをお勧めします。AWS Management Console でバックアップ AMI を作成するには、次のステップを実行します。

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. ドライバーのアップグレードが必要なインスタンスを選択し、[インスタンスの状態] メニューから [インスタンスを停止] を選択します。

  4. インスタンスを停止した後、インスタンスを再度選択します。バックアップを作成するには、[アクション] メニューから [イメージとテンプレート] を選択し、[イメージを作成] を選択します。

  5. インスタンスを再起動するには、[インスタンスの状態] メニューから [インスタンスを開始] を選択します。

ステップ 2: ENA ドライバーをインストールまたはアップグレードする

ENA ドライバーは、AWS Systems Manager Distributor または PowerShell コマンドレットを使用してインストールまたはアップグレードできます。詳細な手順については、使用する方法に一致するタブを選択してください。

Systems Manager Distributor

Systems Manager Distributor 機能を使用して、Systems Manager マネージドノードにパッケージをデプロイできます。Systems Manager Distributor を使用すると、ENA ドライバーパッケージを 1 回インストールすることも、スケジュールされた更新を使用してインストールすることもできます。Systems Manager Distributor を使用して ENA ドライバーパッケージ (AwsEnaNetworkDriver) をインストールする方法の詳細については、「AWS Systems Manager ユーザーガイド」の「パッケージのインストールまたは更新」を参照してください。

PowerShell

このセクションでは、PowerShell コマンドレットを使用して ENA ドライバーパッケージをインスタンスにダウンロードしてインストールする方法について説明します。

オプション 1: 最新バージョンをダウンロードして抽出する
  1. インスタンスに接続してローカル管理者としてログインします。

  2. invoke-webrequest コマンドレットを使用して、最新のドライバーパッケージをダウンロードします。

    PS C:\> invoke-webrequest https://ec2-windows-drivers-downloads.s3.amazonaws.com/ENA/Latest/AwsEnaNetworkDriver.zip -outfile $env:USERPROFILE\AwsEnaNetworkDriver.zip
    注記

    ファイルのダウンロード時にエラーが表示され、Windows Server 2016 以前のバージョンを使用している場合は、PowerShell ターミナルで TLS 1.2 を有効にする必要がある場合があります。次のコマンドで現在の PowerShell セッションの TLS 1.2 を有効にしてから、もう一度試してください。

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

    あるいは、インスタンスのブラウザウィンドウから最新のドライバーパッケージをダウンロードすることもできます。

  3. expand-archive コマンドレットを使用して、インスタンスにダウンロードした zip アーカイブを抽出します。

    PS C:\> expand-archive $env:userprofile\AwsEnaNetworkDriver.zip -DestinationPath $env:userprofile\AwsEnaNetworkDriver
オプション 2: 特定のバージョンをダウンロードして抽出する
  1. インスタンスに接続してローカル管理者としてログインします。

  2. Windows ENA ドライバー テーブル内のバージョンのリンクから、必要な特定のバージョンの ENA ドライバーパッケージをダウンロードします。

  3. zip アーカイブをインスタンスに抽出します。

PowerShell を使用して ENA ドライバーをインストールする

ダウンロードしたのが最新のドライバーと特定のバージョンのいずれであっても、インストールのステップは同じです。ENA ドライバーをインストールするには、次のステップを実行します。

  1. ドライバーをインストールするには、インスタンス上の AwsEnaNetworkDriver ディレクトリから install.ps1 PowerShell スクリプトを実行します。エラーが発生した場合は、PowerShell 3.0 以降を使用していることを確認してください。

  2. インストーラーがインスタンスを自動的に再起動しない場合は、Restart-Computer PowerShell コマンドレットを実行します。

    PS C:\> Restart-Computer

ステップ 3 (オプション): インストール後に ENA ドライバーのバージョンを確認する

ENA ドライバーパッケージがインスタンスに正常にインストールされたことを確認するために、次のように新しいバージョンを確認できます。

  1. インスタンスに接続してローカル管理者としてログインします。

  2. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

  3. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

  4. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

  5. 名前を選択するか、[Amazon Elastic Network Adapter] のコンテキストメニューを開き、[Properties] (プロパティ) を選択します。これにより、[Amazon Elastic Network Adaptor のプロパティ] ダイアログが開きます。

    注記

    ENA アダプターはすべて同じドライバーを使用します。複数の ENA アダプターがある場合は、そのうちのいずれかを選択して、すべての ENA アダプターのドライバーを更新できます。

  6. インストールされている現在のバージョンを確認するには、[ドライバー] タブを開いて [ドライバーのバージョン] を確認します。現在のバージョンがターゲットバージョンと一致しない場合は、「Elastic Network Adapter Windows ドライバーのトラブルシューティング」を参照してください。

ENA ドライバーのインストールをロールバックする

インストールで問題が発生した場合は、ドライバーをロールバックする必要がある場合があります。インスタンスにインストールされている ENA ドライバーの以前のバージョンにロールバックするには、次のステップを実行します。

  1. インスタンスに接続してローカル管理者としてログインします。

  2. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

  3. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

  4. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

  5. 名前を選択するか、[Amazon Elastic Network Adapter] のコンテキストメニューを開き、[Properties] (プロパティ) を選択します。これにより、[Amazon Elastic Network Adaptor のプロパティ] ダイアログが開きます。

    注記

    ENA アダプターはすべて同じドライバーを使用します。複数の ENA アダプターがある場合は、そのうちのいずれかを選択して、すべての ENA アダプターのドライバーを更新できます。

  6. ドライバーをロールバックするには、[ドライバー] タブを開き、[ドライバーをロールバック] を選択します。これにより、[ドライバーパッケージのロールバック] ウィンドウが開きます。

    注記

    [ドライバー] タブに [ドライバーをロールバック] アクションが表示されない場合、またはアクションが使用できない場合は、インスタンス上のドライバーストアに、以前にインストールされたドライバーパッケージが含まれていないことを意味します。この問題をトラブルシューティングするには、「トラブルシューティングシナリオ」を参照し、「予期しない ENA ドライバのバージョンがインストールされている」セクションを展開します。デバイスドライバーパッケージの選択プロセスの詳細については、Microsoft ドキュメントウェブサイトの「Windows がデバイスのドライバーパッケージを選択する方法」を参照してください。

インスタンスの診断情報を収集する

Windows オペレーティングシステム (OS) ツールを開く手順は、インスタンスにインストールされている OS のバージョンによって異なります。以下のセクションでは、[Run] (実行) ダイアログでツールを開きます。このツールは、すべての OS バージョンで同じ動作をします。ただし、これらのツールには、任意の方法を使用してアクセスできます。

[Run] (実行) ダイアログにアクセスする
  • Windows ロゴのキーの組み合わせを使用する: Windows + R

  • 検索バーを使用する:

    • 検索バーに run と入力します。

    • 検索結果から [Run] (実行) アプリケーションを選択します。

一部の手順では、プロパティまたはコンテキスト依存アクションにアクセスするためにコンテキストメニューが必要です。OS のバージョンとハードウェアに応じて、いくつかの方法があります。

コンテキストメニューにアクセスする
  • マウスを使用する: 項目を右クリックしてコンテキストメニューを表示します。

  • キーボードを使用する:

    • お使いの OS のバージョンに応じて、Shift + F10、または Ctrl + Shift + F10 を使用します。

    • キーボードにコンテキストキー (ボックス内の 3 本の水平線) がある場合は、目的の項目を選択し、コンテキストキーを押します。

インスタンスに接続できる場合は、次の方法を使用してトラブルシューティング用の診断情報を収集します。

ENA デバイスのステータスを確認する

Windows デバイスマネージャーを使用して ENA Windows ドライバーのステータスを確認するには、次の手順に従います。

  1. 前のセクションで説明されているいずれかの方法を使用して [Run] (実行) ダイアログを開きます。

  2. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

  3. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

  4. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

  5. 名前を選択するか、[Amazon Elastic Network Adapter] のコンテキストメニューを開き、[Properties] (プロパティ) を選択します。これにより、[Amazon Elastic Network Adaptor のプロパティ] ダイアログが開きます。

  6. [全般] タブに「このデバイスは正常に動作しています」というメッセージが表示されていることを確認します。

ドライバーイベントメッセージを調査する

Windows イベントビューアーを使用して ENA Windows ドライバーイベントログを確認するには、次の手順を実行します。

  1. 前のセクションで説明されているいずれかの方法を使用して [Run] (実行) ダイアログを開きます。

  2. Windows イベントビューアーを開くには、[Run] (実行) ボックスに eventvwr.msc と入力します。

  3. [OK] を選択します。これにより、[Event Viewer] (イベントビューアー) ウィンドウが開きます。

  4. [Windows Logs] (Windows ログ) メニューを展開し、[System] (システム) を選択します。

  5. [Actions] (アクション) の右上のパネルで、[Filter Current Log] (現在のログをフィルター) を選択します。これにより、フィルタリングダイアログが表示されます。

  6. [Event sources] (イベントソース) ボックスに ena と入力します。これにより、ENA Windows ドライバーによって生成されたイベントに結果が制限されます。

  7. [OK] を選択します。これにより、フィルターされたイベントログの結果がウィンドウの詳細セクションに表示されます。

  8. 詳細をドリルダウンするには、リストからイベントメッセージを選択します。

次の例は、Windows イベントビューアーのシステムイベントリスト内の ENA ドライバーイベントを示しています。

例: Windows イベントビューアーのシステムメッセージリストに表示される ENA ドライバーイベント。

イベントメッセージの概要

次の表に、ENA Windows ドライバーが生成するイベントメッセージを示します。

入力
イベント ID ENA ドライバーイベントの説明 タイプ
5001 ハードウェアのリソースが不足しています エラー
5002 アダプターがハードウェアエラーを検出しました エラー
5005 タイムリーに完了しなかった NDIS 操作でアダプターがタイムアウトしました エラー
5032 アダプターがデバイスをリセットできませんでした エラー
5200 アダプターが初期化されました 情報
5201 アダプターが停止されました 情報
5202 アダプターが一時停止されました 情報
5203 アダプターが再起動されました 情報
5204 アダプターがシャットダウンされました 情報
5205 アダプターがリセットされました エラー
5206 アダプターが突然取り外されました エラー
5208 アダプター初期化ルーチンが失敗しました エラー
5210 アダプターが内部問題を検出し、正常に回復しました エラー

パフォーマンスメトリクスを確認する

ENA Windows ドライバーは、メトリクスが有効になっているインスタンスからネットワークパフォーマンスメトリクスを発行します。ネイティブのパフォーマンスモニターアプリケーションを使用して、インスタンスのメトリクスを表示および有効化できます。ENA Windows ドライバーが生成するメトリクスの詳細については、「EC2 インスタンスのネットワークパフォーマンスをモニタリングします。」を参照してください。

ENA メトリクスが有効で、Amazon CloudWatch エージェントがインストールされているインスタンスでは、CloudWatch は Windows パフォーマンスモニターのカウンターに関連付けられているメトリクスと ENA の高度なメトリクスを収集します。これらのメトリクスは、EC2 インスタンスでデフォルトで有効になっているメトリクスに加えて収集されます。これらのメトリクスの詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch エージェントにより収集されるメトリクス」を参照してください。

注記

パフォーマンスメトリクスは、ENA ドライバーのバージョン 2.4.0 以降 (バージョン 2.2.3 でも使用可能) で使用できます。ENA ドライバーのバージョン 2.2.4 は、第 6 世代 EC2 インスタンスでパフォーマンスが低下する可能性があるためロールバックされました。新バージョンに更新されていることを確認するため、ドライバーを最新バージョンにアップグレードすることをお勧めします。

パフォーマンスメトリクスを使用できる方法には、次のようなものがあります。

  • インスタンスのパフォーマンスの問題をトラブルシューティングします。

  • ワークロードに適したインスタンスサイズを選択します。

  • スケーリングアクティビティをプロアクティブに計画します。

  • アプリケーションをベンチマークして、インスタンスで使用可能なパフォーマンスを最大化するかどうかを判断します。

更新レート

デフォルトでは、ドライバーは 1 秒間隔でメトリクスを更新します。ただし、メトリクスを取得するアプリケーションは、ポーリングに別の間隔を使用する場合があります。更新間隔は、デバイスマネージャーで、ドライバーの詳細プロパティを使用して変更できます。

ENA Windows ドライバーのメトリクスの更新間隔を変更するには、次の手順を実行します。

  1. 前のセクションで説明されているいずれかの方法を使用して [Run] (実行) ダイアログを開きます。

  2. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

  3. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

  4. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

  5. 名前を選択するか、[Amazon Elastic Network Adapter] のコンテキストメニューを開き、[Properties] (プロパティ) を選択します。これにより、[Amazon Elastic Network Adaptor のプロパティ] ダイアログが開きます。

  6. ポップアップウィンドウで [Advanced] (詳細) タブを開きます。

  7. [Property] (プロパティ) リストから、[Metrics Refresh Interval] (メトリクス更新間隔) を選択して値を変更します。

  8. 終了したら、[OK] を選択します。

最適とは言えない設定に関する通知を確認する

ENA デバイスは、変更可能なドライバー内の最適ではない構成設定を検出します。デバイスは ENA ドライバーに通知し、イベント通知をログに記録します。Windows イベントビューアーで最適でないイベントを確認するには

  1. 前のセクションで説明されているいずれかの方法を使用して [Run] (実行) ダイアログを開きます。

  2. Windows イベントビューアーを開くには、[Run] (実行) ボックスに eventvwr.msc と入力します。

  3. [OK] を選択します。これにより、[Event Viewer] (イベントビューアー) ウィンドウが開きます。

  4. [Windows Logs] (Windows ログ) メニューを展開し、[System] (システム) を選択します。

  5. [Actions] (アクション) の右上のパネルで、[Filter Current Log] (現在のログをフィルター) を選択します。これにより、フィルタリングダイアログが表示されます。

  6. [Event sources] (イベントソース) ボックスに ena と入力します。これにより、ENA Windows ドライバーによって生成されたイベントに結果が制限されます。

  7. [OK] を選択します。これにより、フィルターされたイベントログの結果がウィンドウの詳細セクションに表示されます。

ID 59000 のイベントは、最適ではない設定に関する検出結果を通知します。イベントを右クリックして [イベントのプロパティ] を選択すると詳細ビューが開きます。または、[表示] メニューから [プレビューペイン] を選択すると、同じ詳細を表示できます。

例: Windows イベントビューアーのプレビューペインに表示されるシステムイベント ID 59000。

イベントコードを表示するには、[詳細] タブを開きます。[バイナリデータ: 単語] セクションでは、最後の単語がコードです。

例: [バイナリデータ] セクションの最後の単語が強調表示されます。

次のリストは、通知コードの詳細と、最適ではない構成が検出された場合の推奨アクションを示しています。

  • コード 1: ワイド LLQ 構成の ENA Express は推奨されません。

    ENA Express ENI はワイド LLQ で設定されています。この構成は最適とは言えず、ENA Express のパフォーマンスに影響を与える可能性があります。ENA Express ENI を使用するときは、次のようにワイド LLQ 設定を無効にすることをお勧めします。

    1. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

    2. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

    3. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

    4. Amazon Elastic Network Adapter のデバイスプロパティを開きます。

    5. そこから、[詳細設定] タブを開いて変更を加えます。

    6. [LLQ ヘッダーサイズポリシー] プロパティを選択し、その値を Normal (128 Bytes) に設定します。

    7. OK を選択して変更を保存します。

  • コード 2: Tx キューの深さが最適ではない ENA Express ENI は推奨されません

    ENA Express ENI が最適ではない Tx キューの深さで設定されています。この設定は、ENA Express のパフォーマンスに影響を与える可能性があります。ENA Express ENI を使用する際は、次のようにすべての Tx キューをネットワークインターフェイスの最大値に拡大することをお勧めします。

    これらのステップに従って、Tx キューを最大の深さまで拡大します:

    1. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

    2. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

    3. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

    4. Amazon Elastic Network Adapter のデバイスプロパティを開きます。

    5. そこから、[詳細設定] タブを開いて変更を加えます。

    6. [送信バッファ] プロパティを選択し、サポートされている最大値にその値を設定します。

    7. OK を選択して変更を保存します。

ENA アダプターのリセット

リセットプロセスは、ENA Windows ドライバーがアダプターのエラーを検出し、アダプターを異常としてマークすると開始されます。ドライバー自体をリセットできないため、アダプターのヘルスステータスを確認し、ENA Windows ドライバーのリセットハンドルを呼び出すのはオペレーティングシステムによって異なります。リセットプロセスでは、短時間、トラフィック損失が発生することがあります。ただし、TCP 接続は回復できるはずです。

ENA アダプターは、キープアライブ通知の送信に失敗して、間接的にデバイスのリセット手順を要求することもあります。例えば、ENA アダプターが回復不可能な設定をロードした後に不明な状態になった場合、ENA アダプターがキープアライブ通知の送信を停止することがあります。

ENA アダプターのリセットの一般的な原因
  • キープアライブメッセージが見つからない

    ENA アダプターは、キープアライブイベントを一定の速度 (通常は 1 秒に 1 回) で送信します。ENA Windows ドライバーは、これらのキープアライブメッセージの存在を定期的に確認するウォッチドッグメカニズムを実装します。前回チェックしてから新しいメッセージを 1 つ以上検出すると、成功した結果が記録されます。それ以外の場合、ドライバーはデバイスに障害が発生したと結論付け、リセットシーケンスを開始します。

  • パケットが送信キューにスタックしている

    ENA アダプターは、パケットが送信キューを予期したとおりに流れていることを確認します。ENA Windows ドライバーは、パケットがスタックしているかどうかを検出し、パケットがスタックしている場合はリセットシーケンスを開始します。

  • Memory Mapped I/O (MMIO) レジスターの読み取りタイムアウト

    Memory Mapped I/O (MMIO) の読み取りオペレーションを制限するために、ENA Windows ドライバーは初期化およびリセットプロセス中にのみ MMIO レジスターにアクセスします。ドライバーがタイムアウトを検出すると、実行中のプロセスに応じて、次のいずれかのアクションが実行されます。

    • 初期化中にタイムアウトが検出されると、フローが失敗し、Windows デバイスマネージャーで ENA アダプターによってドライバーに黄色の感嘆符が表示されます。

    • リセット中にタイムアウトが検出されると、フローは失敗します。その後、OS は ENA アダプターの突然の取り外しを開始し、取り外したアダプターを停止して起動することで回復します。ネットワークインターフェイスカード (NIC) の突然の取り外しの詳細については、「Microsoft Windows ハードウェア開発者向けドキュメント」の「NIC の突然の取り外しの処理」を参照してください。

トラブルシューティングシナリオ

ENA Windows ドライバーで発生する可能性のある問題のトラブルシューティングには、以下のシナリオが役立ちます。最新バージョンがない場合は、ENA ドライバーのアップグレードから始めることをお勧めします。Windows OS のバージョン用の最新のドライバーを検索するには、「Windows ENA ドライバー」を参照してください。

説明

特定のバージョンの ENA ドライバーをインストールするステップを実行すると、Windows デバイスマネージャーは、Windows が別のバージョンの ENA ドライバーをインストールしたことを表示します。

原因

ドライバーパッケージのインストールを実行すると、Windows は開始前にローカルドライバーストア内の特定のデバイスのために、有効なすべてのドライバーパッケージをランク付けします。その後、ランクの値が最も低いパッケージが最適なものとして選択されます。これは、インストールする予定のパッケージとは異なる場合があります。デバイスドライバーパッケージの選択プロセスの詳細については、Microsoft ドキュメントウェブサイトの「Windows がデバイスのドライバーパッケージを選択する方法」を参照してください。

ソリューション

選択したドライバーパッケージバージョンを Windows が確実にインストールするようにするには、PnPUtil コマンドラインツールを使用して、ドライバーストアから下位ランクのドライバーパッケージを削除します。

ENA ドライバーを更新するには、次のステップを実行します。

  1. インスタンスに接続してローカル管理者としてログインします。

  2. ENA デバイスのステータスを確認する」セクションの説明に従って、[Device Manager] (デバイスマネージャー) プロパティウィンドウを開きます。これにより、[Amazon Elastic Network Adaptor のプロパティ] ウィンドウの [全般] タブが開きます。

  3. [Driver] (ドライバー) タブを開きます。

  4. [Update Driver] を選択します。これにより、[ドライバーソフトウェアを更新 - Amazon Elastic Network Adaptor] ダイアログボックスが開きます。

    1. [ドライバーソフトウェアをどのように検索しますか?] セクションで、[コンピュータを参照してドライバーソフトウェアを探す] を選択します。

    2. [コンピュータ上のドライバーソフトウェアを参照] ページで、検索バーの下にある [コンピュータ上のデバイスドライバーのリストから選択] を選択します。

    3. [このハードウェア用にインストールするデバイスドライバーを選択] ページで、[ディスク使用...] を選択します。

    4. [ディスクからインストール] ウィンドウで、ドロップダウンリストからファイルの場所の横にある [参照...] を選択します。

    5. ターゲット ENA ドライバーパッケージをダウンロードした場所に移動します。ena.inf という名前のファイルを選択し、[開く] を選択します。

    6. インストールを開始するには、[OK][次へ] の順に選択します。

  5. インストーラーがインスタンスを自動的に再起動しない場合は、Restart-Computer PowerShell コマンドレットを実行します。

    PS C:\> Restart-Computer

説明

デバイスマネージャーの [Network adapters] (ネットワークアダプター) セクションの ENA アダプターアイコンには、警告記号 (感嘆符が入った黄色の三角形) が表示されます。

次の例は、Windows デバイスマネージャーで警告アイコンが表示された ENA アダプターを示しています。

例: Windows デバイスマネージャーに表示された、警告アイコンが付いた ENA アダプター。

原因

このデバイスの警告は、一般に、環境の問題によって引き起こされ、さらに調査が必要になる可能性があり、根本的な原因を特定するために消去プロセスが必要になることがよくあります。デバイスエラーの完全なリストについては、「Microsoft Windows ハードウェア開発者向けドキュメント」の「デバイスマネージャーのエラーメッセージ」を参照してください。

ソリューション

このデバイス警告の解決策は、根本原因によって異なります。ここで説明する消去プロセスには、単純な解決策がある可能性のある最も一般的な問題を特定して解決するためのいくつかの基本的なステップが含まれています。これらのステップで問題が解決しない場合は、追加の根本原因分析が必要です。

一般的な問題を特定して解決するには、次のステップを実行します。

  1. デバイスを停止して起動する

    ENA デバイスのステータスを確認する」セクションの説明に従って、[Device Manager] (デバイスマネージャー) プロパティウィンドウを開きます。これにより、[Amazon Elastic Network Adapter Properties] (Amazon Elastic Network Adapter のプロパティ) ウィンドウの [General] (全般) タブが開きます。その [Device status] (デバイスの状態) にエラーコードと短いメッセージが表示されます。

    1. [Driver] (ドライバー) タブを開きます。

    2. [Disable Device] (デバイスを無効にする) を選択し、表示される警告メッセージに対して [Yes] (はい) を選択します。

    3. [Enable Device] (デバイスを有効にする) を選択します。

  2. EC2 インスタンスを停止して起動する

    依然としてデバイスマネージャーでアダプターに警告アイコンが表示されている場合は、次のステップとして、EC2 インスタンスを停止して起動します。これにより、ほとんどの場合、別のハードウェアでインスタンスが再起動されます。

  3. インスタンスリソースの問題の可能性を調査する

    EC2 インスタンスを停止して起動しても問題が解決しない場合は、メモリ不足など、インスタンスのリソースの問題を示している可能性があります。

説明

Windows イベントビューアーには、ENA アダプターの併用で発生する、アダプターのタイムアウトイベントとリセットイベントが表示されます。メッセージは、次の例のように表示されます。

  • Event ID 5007 (イベント ID 5007): Amazon Elastic Network Adapter : Timed out during an operation. (操作中にタイムアウトしました。)

  • Event ID 5205 (イベント ID 5205): Amazon Elastic Network Adapter : Adapter reset has been started. (アダプターのリセットが開始されました。)

アダプターのリセットにより、最小限のトラフィックの中断が発生します。複数回リセットされても、重大なネットワークの中断を引き起こすのは異常です。

原因

この一連のイベントは、ENA Windows ドライバーが、応答しなくなった ENA アダプターのリセットを開始したことを示します。ただし、デバイスドライバーがこの問題を検出するために使用するメカニズムは、CPU 0 の枯渇による誤検出の影響を受けます。

ソリューション

このようなエラーの組み合わせが頻繁に発生する場合は、リソースの割り当てを調べて、どこを調整するのがよいか確認してください。

  1. 前のセクションで説明されているいずれかの方法を使用して [Run] (実行) ダイアログを開きます。

  2. Windows リソースモニターを開くには、[Run] (実行) ボックスに resmon と入力します。

  3. [OK] を選択します。これにより、[Resource Monitor] (リソースモニター) ウィンドウが開きます。

  4. [CPU] タブを開きます。CPU ごとの使用率グラフは、[Resource Monitor] (リソースモニター) ウィンドウの右側に表示されます。

  5. CPU 0 の使用率レベルをチェックして、それらが高すぎるかどうかを確認します。

大きなインスタンスタイプ (16 vCPU より大きい) では ENA アダプターの CPU 0 を除外するように RSS を設定することをお勧めします。インスタンスタイプが小さい場合は、RSS を設定するとエクスペリエンスが向上する可能性がありますが、使用可能なコア数が少なくなるため、CPU コアの制約がパフォーマンスに悪影響を及ぼさないようにするためのテストが必要です。

以下の例に示すように、Set-NetAdapterRss コマンドを使用して ENA アダプターの RSS を設定します。

Set-NetAdapterRss -name (Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "*Elastic*"}).Name -Baseprocessorgroup 0 -BaseProcessorNumber 1

説明

第 6 世代の EC2 インスタンスに移行すると、ENA Windows ドライバーのバージョンを更新していない場合、パフォーマンスが低下したり、ENA アタッチメントエラーが発生したりする可能性があります。

原因

インスタンスのオペレーティングシステム (OS) に基づき、第 6 世代の EC2 インスタンスタイプには次の ENA Windows ドライバーの最小バージョンが必要です。

最小バージョン
Windows Server バージョン ENA ドライバーバージョン

Windows Server 2008 R2

2.2.3 または 2.4.0

Windows Server 2012 以降

2.2.3 以降

Windows ワークステーション

2.2.3 以降

ソリューション

第 6 世代の EC2 インスタンスにアップグレードする前に、起動する AMI に前の表に示したインスタンス OS に基づく互換性のあるドライバーがあることを確認してください。詳細については、「AWS re:Post ナレッジセンター」の「ネットワークのパフォーマンスを最大限に引き出すには、EC2 インスタンスを第 6 世代インスタンスに移行する前、何をする必要がありますか?」を参照してください。

説明

ENA インターフェイスが期待どおりに動作していません。

原因

パフォーマンス問題の根本原因の分析は、消去プロセスです。関連する変数が多すぎて一般的な原因を挙げることはできません。

ソリューション

根本原因の分析の最初のステップとして、期待どおりに動作していないインスタンスの診断情報を確認し、問題の原因となっている可能性のあるエラーがあるかどうかを判断します。詳細については、「インスタンスの診断情報を収集する」セクションを参照してください。

ネットワーキングが拡張されたインスタンスで最大のネットワークパフォーマンスを実現するには、デフォルトのオペレーティングシステムの設定を変更することが必要になる場合があります。いくつかの最適化 (チェックサムオフロードをオンにして RSS を有効にするなど) は、公式の Windows AMI でデフォルトで設定されています。ENA アダプターに適用できるその他の最適化については、「ENA アダプターのパフォーマンス調整」に示すパフォーマンス調整を参照してください。

慎重に作業を進め、デバイスプロパティの調整を、このセクションに記載されている内容や、AWS サポートチームが推奨する特定の変更に限定することをお勧めします。

ENA アダプターのプロパティを変更するには、次のステップに従います。

  1. 前のセクションで説明されているいずれかの方法を使用して [Run] (実行) ダイアログを開きます。

  2. Windows デバイスマネージャーを開くには、[Run] (実行) ボックスに devmgmt.msc と入力します。

  3. [OK] を選択します。デバイスマネージャーウィンドウが開きます。

  4. [Network adapters] (ネットワークアダプター) の左側にある矢印を選択してリストを展開します。

  5. 名前を選択するか、[Amazon Elastic Network Adapter] のコンテキストメニューを開き、[Properties] (プロパティ) を選択します。これにより、[Amazon Elastic Network Adaptor のプロパティ] ダイアログが開きます。

  6. 変更するには、[詳細設定] タブを開きます。

  7. 完了したら、[OK] を選択して変更を保存します。

次の例は、Windows デバイスマネージャーの ENA アダプタープロパティを示しています。

例: Windows デバイスマネージャーに表示される ENA アダプタープロパティ。
ENA アダプターのパフォーマンス調整

次の表に、ENA インターフェイスのパフォーマンスを向上させるために調整できるプロパティを示します。

入力
プロパティ 説明 デフォルト値 調整

Receive Buffers

ソフトウェア受信キューのエントリ数を制御します。

1024

最大 8192 まで増やすことができます。

Receive Side Scaling (RSS)

マルチプロセッサシステムの複数の CPU 間でネットワーク受信処理を効率的に配分できます。

有効

負荷を複数のプロセッサに分散させることができます。詳細については、「Windows インスタンスでのネットワークパフォーマンスを最適化する」を参照してください。

RSS キューの最大数

RSS が有効な場合に許可する RSS キューの最大数を設定します。

32

RSS キューの数は、ドライバーの初期化中に決定され、(特に) 次のような制限があります。

  • このプロパティで設定される RSS キューの制限

  • インスタンスの制限 (vCPU 数)

  • ハードウェアの世代の制限 (ENAv1 では最大 8 個の RSS キュー、ENAv2 では最大 32 個の RSS キュー)

インスタンスとハードウェアの世代の制限に応じて、値を 1~32 に設定できます。詳細については、「Windows インスタンスでのネットワークパフォーマンスを最適化する」を参照してください。

Jumbo packet

ジャンボイーサネットフレーム (1500 バイトを超えるペイロード) の使用を有効にします。

無効 (ペイロードは 1500 バイト以下に制限されます)

値は最大 9015 まで設定できます。これは 9001 バイトのペイロードに相当します。これがジャンボイーサネットフレームの最大ペイロードとなります。「ジャンボイーサネットフレームの使用に関する考慮事項」を参照してください。

ジャンボイーサネットフレームの使用に関する考慮事項

ジャンボフレームでは、パケットあたりのペイロードサイズを拡張し、パケットオーバーヘッド以外のパケットの割合を高めることによって、1500 バイトを超えるデータを送信できます。同じ量の使用可能なデータを少ないパケットで送信することができます。ただし次の場合には、トラフィックの MTU は最大 1500 に制限されます。

  • EC2 Classic 用の特定の AWS リージョン外部にあるトラフィック

  • 単一の VPC の外部にあるトラフィック

  • リージョン間 VPC ピアリング接続経由のトラフィック

  • VPN 接続経由のトラフィック

  • インターネットゲートウェイ経由のトラフィック

注記

1500 バイトを超えるパケットはフラグメント化されます。IP ヘッダーに Don't Fragment フラグが設定されている場合、それらのパケットはドロップされます。

ジャンボフレームを、インターネットバウンドトラフィックや VPC を出るトラフィックに使用する場合には慎重に行ってください。パケットは中間システムによってフラグメント化されるため、このトラフィックの速度が低下します。VPC から出るアウトバウンドトラフィックに影響を与えずに VPC 内でジャンボフレームを使用するには、次のいずれかのオプションを試してください。

  • ルートごとに MTU サイズを設定します。

  • 異なる MTU サイズと異なるルートを持つ複数のネットワークインターフェイスを使用します。

ジャンボフレームの推奨ユースケース

ジャンボフレームは、VPC 内および VPC 間のトラフィックに役立ちます。次のユースケースにはジャンボフレームを使用することをお勧めします。