この記事では、サーバー メッセージ ブロック (SMB) ファイル サーバー上のイベント ID 1020 イベントをトラブルシューティングする方法について説明します。
元の KB 番号: 4562940
現象
Windows Server ベースの SMB ファイル サーバーでは、Microsoft-Windows-SMBServer/Operational イベント ログで、SMB-Server からのイベント ID 1020 イベントを確認します。 これらのイベントの情報は、次のメッセージのようになります。
ファイル システムの操作に予想以上に時間がかかっています。
クライアント名: <Client-IP/Name>
クライアント アドレス: <Client-IP>:<Client-Port>
ユーザー名: <Username>
セッション ID: <SMB-Session-ID>
共有名: <SMB-Share-Name>
ファイル名: <File-Name>
コマンド: <SMB-Command-Code>
期間 (ミリ秒): <Duration>
警告しきい値 (ミリ秒): 15000
ガイダンス:
基になるファイル システムに時間がかかりすぎて操作に応答できません。 これは通常、SMB ではなくストレージに問題があることを示しています。
Windows がこれらのイベントをログに記録すると、次の現象が発生する場合もあります。
- SMB サーバーのクライアントでパフォーマンスの問題が発生します。 SMB サーバーは SMB クライアントの代わりにローカル ファイルシステムにアクセスするため、SMB サーバーのパフォーマンスの問題はクライアントに直接影響します。 クライアント アプリケーションは、SMB サーバーとの対話に複数の連続する操作が含まれており、各操作で遅延が発生した場合、非常に長い待機時間が発生する可能性があります。
- SMB サーバーのクライアントは、SMB サーバーが管理する共有へのアクセスに問題がある可能性があります。
- SMB サーバーのローカル アプリケーションまたはその他のコンポーネントでパフォーマンスの問題が発生します。 これらのアプリケーションとコンポーネントは、このようなパフォーマンスの問題をログに記録できない可能性があります。
- SMB サーバーが応答を停止しているように見えます。
Note
パフォーマンスの問題は、すべての SMB サーバーのディスクに同時に、または同じ程度に影響を与えるわけではありません。
原因
イベント ID 1020 は、SMB サーバーのファイル システムが、許可されている時間内に読み取り/書き込み (I/O) 操作を完了できないことを示します。 既定では、使用できる時間は 15 秒です。 通常、このような操作は 1 桁ミリ秒の時間枠内で完了することが想定されます。
ファイル システム フィルター ドライバーが誤動作すると、数秒の遅延が発生する可能性があります。 SMB サーバーの物理ディスクに関連する問題により、パフォーマンスが大幅に低下する可能性もあります。 このような問題には、次のようなものがあります。
- 物理ディスクがオーバーロードされています。
- VSS またはその他のバックアップ ソリューションにより、ディスクのフリーズが長引く状況が発生しています。
- 基になるハイパーバイザーのネットワーク/ストレージ スタックのパフォーマンスが低下しています。
- 物理ディスクへのネットワーク接続で問題が発生しています。
- ストレージ アプライアンス自体 (記憶域ネットワーク (SAN)、ネットワーク接続ストレージ (NAS)、またはその他の種類) で問題が発生しています。
15 秒未満のファイル システムの遅延は警告イベントを生成しませんが、SMB サーバーのパフォーマンスを低下させます。
解決方法
これらのファイル システムの遅延の原因は環境の仕様によって異なるため、通常、特定の問題を特定するために、より多くのデータを収集する必要があります。
まず、SMB サーバーのイベント ログを確認します。 イベント ID 1020 イベントには、詳細とパターンを識別するのに役立つ情報が含まれています。 イベント データには、遅延の正確な期間と、遅延が発生した SMB コマンド コードが含まれます。 SMBv2 コマンド コードの一覧については、「 2.2.1.2 SMB2 パケット ヘッダー - SYNCを参照してください。
トレース ログの収集
問題が Windows オペレーティング システム内 (フィルター ドライバーなど) または外部 (ハードウェア、ハイパーバイザー、ネットワーク、ストレージなど) から発生したかどうかをさらに診断するには、Storport Trace などのアプリケーションを使用してトレース データを収集します。 StorPortPacman などのツールを使用して、ディスクの応答時間を確認します。 Windows ストレージ スタックの下端にある StorPort トレースと、SMB サーバー (またはその他のアプリケーション) で、スタックの上端で遅延が発生します。 StorPortPacman の詳細については、「 Deciphering Storport Traces 101 を参照してください。
StorPort レベルでの最大応答時間が長い場合は、パフォーマンスの問題の原因がオペレーティング システムの外部にあることを示します。 システムが論理ディスクからアプリケーション (ファイル サーバー) レベルで発生する待機時間を確認するには、Perfmon または WPR トレースを有効にします。 このようなトレース データには、15 秒の警告しきい値未満の待機時間も表示されます。 詳細については、「Windows パフォーマンス モニター (Perfmon)を使用したディスク待機時間の保証」を参照してください。
カーネル ダンプ ファイルのデータを収集する
極端な遅延 (10 分以上) やその他の条件下では、SMB サーバーによってライブ カーネル ダンプ ファイルが作成されます。 このような情報は、トラブルシューティングに役立ちます。
Microsoft-Windows-SMBServer/Operational イベント ログの次のイベントは、ライブ カーネル ダンプ ファイルが使用可能かどうかを示します。
- イベント ID 1031: サーバーが問題を検出し、デバッグ情報を収集するためのライブ カーネル ダンプをキャプチャしました。
- イベント ID 1032: サーバーは問題を検出しましたが、デバッグ情報を収集するためにライブ カーネル ダンプをキャプチャできませんでした。
Windows では、ダンプ ファイルが %SystemRoot%\LiveKernelReports フォルダーに格納されます。