DebianでのNFSパフォーマンスの問題


9

2つのwheezyマシン間でNFSのパフォーマンスに非常に一貫性がなく、それを特定できないようです。

セットアップ:

マシン1「video1」:デュアル5506、12GB RAM、8x3TB RAID6のXFS、「/ mnt / storage」から「video1」としてエクスポート

マシン2 'storage1':Phenom X2 @ 3.2Ghtz w / 8GB ram、5x2TBのZFSは/ mnt / storage1-storageから 'storage1'としてエクスポートされます

ローカル書き込みパフォーマンス:

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-120GBのAVCHDまたはMJPEGファイルを移動することを望んでいます)のようで、パフォーマンスは900mbpsから150-180mbpsまで下がり、 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を超えます。

今、同じエクスポートから読み取ると、読み取り全体で890 Mbpsの美しいまたは数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まで増やしてみましたが、数ギグした後も、それはまだうまくいきません。


...エクスポートの非同期オプションで修正されました。次に、ジャンボフレームを使用してさらにいくつかのmbpsを試すことができるかどうかを確認します。
カイルM

1
これを回答として投稿し、問題が解決したことを他の人に知らせるために、可能であればそれを受け入れてください。
mgorven 2012

回答:


4

マウントオプションやエクスポートオプションを含めないため、NFSにはパフォーマンスに影響を与える可能性のあるものがいくつかあります。NFSのパフォーマンスと信頼性を最大にするために、次のオプションを試すことをお勧めします(私の経験に基づく):

  • マウントオプション: tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768

  • エクスポートオプション: async


また、上記のマウントオプションは、NFSでOracleを実行するためにOracleが推奨するマウントオプションでもあります。
クリストファーキャシェル

上記のヒントでパフォーマンスを大幅に向上させることもできましたnfsvers=3が、必須ではありませんでした。
anarcat 14

@anarcat-最新のリリースでは、あなたは正しいですnfsvers=3。それほど重要ではありません。Linux NFSマウントは、バージョン3を指定しない限り、デフォルトでNFSバージョン2を使用していました。そのような場合、バージョンを明示的に設定することは非常に価値がありました。最新のリリースでは、mountはv4から開始してネゴシエートし、次にv3を試行してから、v2にフォールバックします。
Christopher Cashell 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.