サイト移設しました。技術情報をwww.putise.comで更新しています。

Windowsファイル共有ネットワークのボトルネック(限界・最大転送スループット)

Windows共有(Windowsネットワーク)を使用しているプログラム・システムは多い。

このWindows共有のネットワークプロトコルSMBもしくはCIFSには ボトルネックになりうる限界があるようだ。

 

ギガビットイーサーのNICを使用し、1Gbpsのネットワーク帯域があるにも関わらず、

Windowsのファイル共有でファイル転送すると、1多重(セッション)でどんなにがんばっても 50%程度のネットワーク帯域しか使えない。

 

このWindowsネットワークの限界値、調べてみてもどこにボトルネックがあるのか不明。

プロトコルの仕様的な問題かも知れない。

 

 

以下の、URL情報日経BPを見ると

 

http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030918/3/

 

ウインドウ・サイズやジャンボ・フレームを変更してもSMBとCIFSともに効果なしだったそうです。

日経BPでのWindowsファイル共有(Windowsネットワーク)の最大転送スループットが511Mビット/秒。

 

 

 

 

また、アスキービジネスの以下のURLの記事

 

http://ascii-business.com/news/wanjet060728.html

 

も良い概算サンプルになる。

 

「 ただ、CIFSは本来LAN環境を前提に作られたプロトコルであり、WANを経由すると遅くなることがよく知られている。原因は、CIFSで1度の要求に対して応答できるデータの大きさが61KBに制限されているためだ。


 たとえば、CIFSでは100MBのファイルをドラッグアンドドロップした場合、約1700回のやりとりが必要である。遅延が1ms程度のLANであれば、計算上は1700×1msで約1.7秒でコピーが完了する。それに対し、遅延が200msあるWANの場合、コピーにかかる時間は5~6分にもなってしまう。 」

 

厳密には不明だが、概算としてはテスト結果と一致している。

概算結果のWindowsファイル共有(Windowsネットワーク)の最大転送スループットが470Mビット/秒。

 

 

 

 

やはり、1GbEのNICを使用したWindowsファイルサーバーは、 1Gbpsのネットワーク帯域を使用しきる事は出来きない。

(テスト環境のストレージスループットは良くて150MB/s 程度と考えている。 )

 

Windows上で、ストレージネックを考慮しないテスト方法

 

windows OS上でネットワーク帯域測定

① fsutil で大きいサイズの転送用データ作成

> fsutil file createnew zero-10gbite.dat 10737418240

② compactでディスク上0バイトに圧縮 (ファイルシステムクラスタサイズの4KB )

> compact /c zero-10gbite.dat

③ copyでネットワーク越しにnulデバイスにコピー

> copy \\server\test\zero-10gbite.dat nul

ディスクのネックを考えないで純粋にネットワーク帯域測定が出来る

 

テスト結果、

1多重 ・・・ 1gbEの44%

2多重 ・・・ 1gbEの70%

3多重 ・・・ 1gbEの80%

と多重度を上げれば徐々にスループット倍率は低下するが、ネットワーク帯域はまだ使用できる。

(テストは、クライアント・サーバー共にWindows Server 2003 R2を使用)

 

1gbEの70%は90MB/s程度(1gbE=128MB/s)なので、巨大ファイルのコピー2多重の場合は70%出る前にディスクネックになる可能性が高い。