2台のwheezyマシン間でNFSのパフォーマンスに非常に一貫性がなく、それを突き止めることができないようです。
セットアップ:
マシン1「video1」:デュアル5506 w/12GB RAM、8x3TBRAID6上のXFSを「/ mnt/storage」から「video1」としてエクスポート
マシン2'storage1 ':Phenom X2 @ 3.2Ghtz w/8GB ram、/ mnt/storage1-storageから' storage1 'としてエクスポートされた5x2TB上のZFS
ローカル書き込みパフォーマンス:
mackek2@video1:/mnt/storage/testing$ dd if=/dev/zero of=localwrite10GB bs=5000k count=2000
2000+0 records in
2000+0 records out
10240000000 bytes (10 GB) copied, 16.7657 s, 611 MB/s
ローカル読み取りパフォーマンス:
どちらも同じHPギガビットスイッチに接続されており、iperfは双方向で堅実な940mbpsを提供します。
私の問題は、storage1からvideo1エクスポートに書き込むと、パフォーマンスがいたるところにあることです。ファイル転送の最初の数ギガ(5〜7)では(30〜120 GBのAVCHDまたはMJPEGファイルをできるだけ早く移動したいと思っています)、パフォーマンスは900 mbpsから150〜180 mbpsに低下し、 30mbpsと遅い。 NFSカーネルサーバーを再起動すると、パフォーマンスが回復し、さらに数回のギグが行われます。
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite10GB count=2000 bs=5000K
2000+0 records in
2000+0 records out
10240000000 bytes (10 GB) copied, 223.794 s, 45.8 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite10GBTest2 count=2000 bs=5000K
2000+0 records in
2000+0 records out
10240000000 bytes (10 GB) copied, 198.462 s, 51.6 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=bigfile776 count=7000 bs=2000K
7000+0 records in
7000+0 records out
14336000000 bytes (14 GB) copied, 683.78 s, 21.0 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=/dev/zero of=remoteWrite15GB count=3000 bs=5000K
3000+0 records in
3000+0 records out
15360000000 bytes (15 GB) copied, 521.834 s, 29.4 MB/s
物事が速く進んでいるとき、クライアントのnfsiostatは数ミリ秒の平均RTTを提供しますが、パフォーマンスが低下するとすぐに最大1.5秒以上のRTTを起動します。さらに、書き込みが行われている間、CPUキューの深さは8を超えてジャンプします。
さて、同じエクスポートから読み取ると、読み取り全体で890Mbpsの美しいギブまたは数mbpsを取得します。
mackek2@storage1:/mnt/video1/testing$ dd if=remoteWrite10GBTest2 of=/dev/null
20000000+0 records in
20000000+0 records out
10240000000 bytes (10 GB) copied, 89.82 s, 114 MB/s
mackek2@storage1:/mnt/video1/testing$ dd if=remoteWrite15GB of=/dev/null
30000000+0 records in
30000000+0 records out
15360000000 bytes (15 GB) copied, 138.94 s, 111 MB/s
同じことが、NFSサーバーとしてのstorage1でも逆に起こります。 CPUキューが跳ね上がり、速度が低下してがらくたになり、髪の毛を抜く。
NFSデーモンの数を64に増やしてみましたが、数回のギグの後でもまだ飛び出します。
マウントまたはエクスポートのオプションが含まれていないため、NFSにはパフォーマンスに影響を与える可能性のあるものがいくつかあります。 (私の経験に基づいて)NFSのパフォーマンスと信頼性を最大化するには、次のオプションを試すことをお勧めします。
マウントオプション:tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768
エクスポートオプション:async