SMB ファイル転送速度の低下
この記事では、SMB によるファイル転送速度の低下に関する推奨されるトラブルシューティング手順について説明します。
ファイルの転送速度が遅い
ファイルの転送速度が遅い場合は、次の手順を検討してください。
バッファーされていない IO (xcopy /J または robocopy /J) に対して、ファイル コピー コマンドを実行します。
ストレージの速度をテストします。 これは、ファイル コピーの速度がストレージの速度によって制限されるためです。
ファイルのコピーはすぐに開始され、その後速度が低下することがあります。 この状況を確認するには、次のガイドラインに従ってください。
これは通常、初期コピーがキャッシュまたはバッファー (メモリ内または RAID コントローラーのメモリ キャッシュ内) にある場合に発生し、キャッシュが不足します。これにより、データが強制的にディスクに直接書き込まれます (ライトスルー)。 これは、より遅いプロセスです。
ストレージ パフォーマンス モニター カウンターを使用して、時間の経過と共にストレージのパフォーマンスが低下するかどうかを判断します。 詳細については、「SMB ファイル サーバーのパフォーマンス チューニング」を参照してください。
RAMMap (SysInternals) を使用して、空きメモリ不足のためにメモリ内の "マップされたファイル" の使用の増加が停止するかどうかを判断します。
トレースのパケット損失を検索します。 これにより、TCP 輻輳プロバイダーによって調整が発生する可能性があります。
SMBv3 以降のバージョンでは、SMB マルチチャネルが有効で動作していることを確認してください。
SMB クライアントで、SMB の大きな MTU を有効にし、帯域幅調整を無効にします。 そのためには、次のコマンドを実行します。
Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
小さいファイルの転送速度が遅い
SMB による小さいファイルの転送速度の低下は、多くのファイルが存在する場合に最もよく発生します。 これは予想される現象です。
ファイルの転送中、ファイルの作成により、高いプロトコル オーバーヘッドとファイル システムオーバーヘッドが発生します。 大きなファイル転送の場合、これらのコストは 1 回だけ発生します。 多数の小さなファイルが転送されると、コストが繰り返し発生し、転送速度が低下します。
この問題に関する技術的な詳細は次のとおりです。
SMB は、ファイルの作成を要求する create コマンドを呼び出します。 コードによっては、ファイルが存在するかどうかがチェックされ、ファイルが作成されます。 または、create コマンドの一部のバリエーションによって、実際のファイルが作成されます。
各 create コマンドは、ファイル システムに対してアクティビティを生成します。
データが書き込まれると、ファイルは閉じられます。
しばらくの間、プロセスはネットワーク待機時間や SMB サーバーの待機時間から影響を受けます。 これは、SMB 要求が最初にファイル システム コマンドに変換され、その後、その操作を完了するために実際のファイル システムの待機時間になるからです。
ウイルス対策プログラムが実行されている場合、転送速度が低下します。 これは、通常、データはパケット スニファーによって 1 回スキャンされ、ディスクに書き込まれるときに 2 回目のスキャンが行われるためです。 シナリオによっては、これらのアクションが何千回も繰り返される場合があります。 1 MB/秒未満に速度が低下する可能性があります。
Office ドキュメントが開くのが遅い
この問題は、通常、WAN 接続で発生します。 これは一般的なものであり、通常は Office アプリ (特に Microsoft Excel) がアクセスしてデータを読み取る方法が原因です。
Office と SMB バイナリが最新であることを確認し、SMB サーバーでリースが無効になっていることを確認することをお勧めします。 これを行うには、次の手順に従います。
Windows 8 と Windows Server 2012 または以降のバージョンの Windows で、次の PowerShell コマンドを実行します。
Set-SmbServerConfiguration -EnableLeasing $false
または、管理者特権でのコマンド プロンプト ウィンドウで次を実行します。
REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v DisableLeasing /t REG\_DWORD /d 1 /f
Note
このレジストリ キーを設定した後は、SMB2 リースは付与されませんが、oplock は引き続き利用できます。 この設定は、主にトラブルシューティングのために使用されます。
ファイル サーバーを再起動するか、サーバー サービスを再起動します。 サービスを再起動するには、次のコマンドを実行します。
NET STOP SERVER NET START SERVER
この問題を回避するには、ファイルをローカル ファイル サーバーにレプリケートすることもできます。 詳細については、「EFS を使用して Office ドキュメントをネットワーク サーバーに保存すると遅い」を参照してください。