When it’s ready.

出来るまで出来ない

SunのZFSなNASは、NFSで使うべし

手元のファイルサーバでパフォーマンステストしてみたら、面白い結果が出たのでご報告

SSDをキャッシュに使ってるZFSのせいなのか関係ないのか分からないがCIFSとNFSで読み込み時のパフォーマンスが全然違った

テスト環境

環境は、ストレージ側がアンバーロードで10Ge shareは500GBのZ2-raidで、SSDのリードジラが300GB付いてる。6コアのAMDが4ソケット付いてて、メモリーは100GB以上積んである。
クライアント側は、有線の1Geを使用したMacBook13inch 4GB Core2duo OSX10.6.2で、テストには内蔵ディスクは使ってない(/dev/null /dev/zero使用)けど、IntelSSDが入ってるのでボトルネックにはなりにくいし、プロトコルの違いでスピードの差は出ないと思う。

書き込み

ファイルをクライアントの/dev/zeroから4GB分書き込んでみた。

# CIFS 40MB/sec
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 105.163602 secs (40840816 bytes/sec)

#NFS 44MB/sec
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 96.290381 secs (44604323 bytes/sec)

10%くらいNFSの方が速いけど、まぁそんなに違わない。CPUの使用率もそれほど変わらなかった。

読み込み

# CIFS 48MB/sec
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 87.981415 secs (48816756 bytes/sec)

% NFS 91MB/sec
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 46.795352 secs (91781921 bytes/sec)

読み込みのスピードはCIFSとNFSで全然違った。倍というと言いすぎだけどほぼ倍NFSの方が速い。体感的にもピューーといくかパッパーっと言う感じで違う。(違いがわかりずらいな)とにかく、はっきり分かるくらい違う。CPUの使用率は若干NFSの方が軽い感じだった。

今回はddコマンドでやったので、同期とか非同期とか関係ないはずだけどひょっとしたらCIFSの読み込みは何か面倒くさい事が起こってるかもしれない。(設定を変えれば速くなるかもしれない)少なくとも深く考えないで設定したパターンだとNFS使った方が読み込みは速いみたい。ZFSでは、share_afpが入ってないけどもし使えるようになったら、afpでもテストしてみたい。

OpenSolarisとかFreeBSDだと結果は違ったものになるのかもしれないが、アンバーロードでは少なくともNFSを使った方がいいみたい。