Windows共有CIFS(SMB2.0)の転送速度パフォーマンス性能の能力!



Windowsファイル共有プロトコル CIFS、SMB(SMB1.0)、SMB2.0とは

CIFSは、トランスポート層の名前解決や通信手段が違えど、SMBをベースにしたプロトコルである。
基礎から学ぶWindowsネットワーク

SMB2.0はSMB1.0にファイル転送に高速化を図ったバージョンアッププロトコルである。


CIFS(SMB2.0)のLAN内転送速度テスト結果


Windows共有でのファイルコピーで驚きの結果が出た!
Windows Server 2008 を相互のCIFSのクライアントとサーバーとして使用することにより、SMB2.0が使用されている

環境
  • Windows Server 2008 64bit
  • FCストレージを使用
fsutil で作成したテストファイル10GBをエクスプローラを使用しコピーテストした。
コピー元のサーバーもコピー先のサーバーもFCストレージを使用。

RAID10のサーバーからRAID10のサーバーへWindowsファイル転送

ローカルサーバー(コピー実行サーバー)からリモートサーバーにエクスプローラによるファイルコピー

ネットワーク帯域の98%程度を維持した。

リモートサーバーからローカルサーバー(コピー実行サーバー)にエクスプローラによるファイルコピー

ネットワーク帯域の93%程度を維持した。


RAID10のサーバーから RAID1のサーバーへWindowsファイル転送


ローカルサーバー(コピー実行サーバー)からリモートサーバーにエクスプローラによるファイルコピー

ネットワーク帯域の98%程度を維持した。

リモートサーバーからローカルサーバー(コピー実行サーバー)にエクスプローラによるファイルコピー

ネットワーク帯域の93%程度を維持した。


驚きの結果でした、ここまでCIFS2.0はパフォーマンス性能が出る。
また不思議なことに、「ローカルサーバーからリモートサーバーにファイルコピー」の方が早いという結果がでた。

不思議なことに、こんな綺麗な波形は二度と得られなくなってしまった。。。

実データファイルでCIFS転送検証

さらに検証。
上の段は、リモートサーバー(サーバーA)で、ローカル(サーバーA)からリモート(サーバーB)にコピー。
下の段は、リモート(サーバーA)からローカル(サーバーB)にコピー。
ファイルのコピー移動方向は同じにした(サーバーAからサーバーBにコピー)。
今度は、copyコマンドを使用した。
また、転送用テストデータfsutilではなく、バックアップで作成した値のあるデータを使用。


同じコピー操作なのにも関わらず、転送速度が異なる。
ただし、サーバーBの方が他のアプリケーションで多少負荷があった。

現在のところ謎だらけであるが、転送速度のパフォーマンスが良いことは間違いない。


再度、同じようなCIFS(SMB2.0)パフォーマンスの波形を求めて再現テスト

さらに検証
再び、同ネットワークスループットの波形が得られた。
やはり、ファイルサーバー(CIFSサーバー)を書き込みとしたほうがパフォーマンスは良い。

テストは
・新規でfsutilで作成したデータファイル10GBを使用
・copyコマンドを使用
・ネットワークのL2スイッチは負荷の低いと思われるネットワークを使用

L2スイッチの負荷状態も影響があるようだ。
同じcopyコマンド、同じデータファイルを使用しても、接続するネットワークで波形が異なる。
コンピュータ名を使用した場合、どのネットワークを使用するか指定できないためIPアドレスでサーバー指定。


■テスト1

リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y \\192.168.1.100\test\test.dat F:\test

リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y F:\test\test2.dat \\192.168.1.100\test\

■ テスト2
再度、同じテストをした。

リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y \\T192.168.1.100\test\test.dat F:\test

リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y F:\test\test2.dat \\192.168.1.100\test\

ファイルサーバーは書き込みの方が早い結果になった。