Windows SMB 共有フォルダ データコピーが遅い場合のチューニング設定

 Windows Server 2016で共有フォルダ、SMBを構成した場合に、データコピーが遅い場合のチューニング設定についての情報になります。

 

個人的にはSMBはデータ転送が遅いという経験をしたことがないのですが、むしろデータ転送が速い経験したことがないです。以前、10Gのインターフェースを持つWindows Server 2016で大容量のデータの転送を行いましたが、10GのNICスループットが9Gbps以上出て、数ギガのファイル転送が一瞬で終わるくらい速かったです。

 

また、Windows Server 2016ではSMB3のバージョンで色々と機能も向上していますので、速度もでると思いますが、速度がでない場合のチューニング設定について紹介します。

 

SMB ファイル転送速度の低下

https://docs.microsoft.com/ja-jp/windows-server/storage/file-server/troubleshoot/slow-file-transfer

 

SMB によるファイル転送速度の低下に関する推奨されるトラブルシューティング手順について説明されています。

 

大きなファイル転送速度が遅い場合の対処法です。

 

●バッファーされていない IO (xcopy/jまたはrobocopy/j) に対して、ファイルコピーコマンドを実行してください。

●ストレージの速度をテストします。 これは、ファイルコピーの速度がストレージの速度によって制限されるためです。

●RAMMap (SysInternals) を使用して、メモリ内の "マップされたファイル" の使用状況が空きメモリ不足のために増加するのを停止するかどうかを判断します。

●トレースのパケット損失を検索します。 これにより、TCP 輻輳プロバイダーによって調整が発生する可能性があります。

●SMBv3 以降のバージョンでは、SMB マルチチャネルが有効で動作していることを確認してください。


●SMB クライアントで、SMB の大きな MTU を有効にし、帯域幅調整を無効にします。 そのためには、次のコマンドを実行します。
Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1

 

ちなみに上記設定をしても特に速度の変化はありませんでした。EnableLargeMtuに関しては初期設定から変更なしです。

 

 

小さいファイル転送の速度が遅い場合の対処法です。

 

SMB による小さいファイルの転送速度の低下は、多くのファイルが存在する場合に最もよく発生するそうです。

 

●SMB は、ファイルの作成を要求する create コマンドを呼び出します。 コードによっては、ファイルが存在するかどうかがチェックされ、ファイルが作成されます。 または、create コマンドの一部のバリエーションによって、実際のファイルが作成されます。

●各 create コマンドは、ファイルシステムに対してアクティビティを生成します。
データが書き込まれると、ファイルは閉じられます。

●しばらくの間、プロセスはネットワーク待ち時間や SMB サーバーの待機時間に影響します。 これは、SMB 要求が最初にファイルシステムコマンドに変換され、その後、実際のファイルシステムの待機時間がその操作を完了するためです。

ウイルス対策プログラムが実行されている場合、転送速度が低下します。 これは、通常、データはパケットスニッファによって1回スキャンされ、ディスクに書き込まれるときに2回スキャンされるためです。 シナリオによっては、これらのアクションが何千も繰り返される場合があります。 1 MB/秒未満で速度が低下する可能性があります。

 

今回の情報には記載がありませんが、SMB署名が影響しているケースもあるようです。これもGPOをチェックしたら有効ではありませんでしので、環境によっては影響があるかもしれません。

 

SMBのファイル転送はどちらかというと小さいファイルを大量に送る場合に遅延を感じやすいと思いますので、参考にしてみてください。 

 

【Amazon.co.jp 限定】Dell モニター 23.8インチ SE2416H(3年間交換保証/CIE1976 84%/広視野角/フレームレス/フルHD/IPS非光沢/HDMI,D-Sub15ピン)

 

>