bananan_wの日記: そろそろNFSのアレっぷりから目を逸さず 3
Linux の NFS はアレなのは皆さん良く聞くところだと思うのですが、やっぱりアレだと思いますです。NFS サーバ上に dd でファイルを作ったり読み込んだりして見たんですがどーも変です。dd で書き込む時には生のハードディスクの速度がでる(約320Mbps)んですが、dd でそのファイルを読み込んだ時には切なくなるぐらい遅い(訳32Mbps)です。
NFSサーバは 768MB のメモリがあるので、1GByte のファイルを4個作る速度と、作ったファイルの読み込み速度を調べてみたのです。
どーやら Read の時に
nfs: server 192.168.1.100 not responding, still trying
nfs: server 192.168.1.100 OK
が激しくでているのが原因だと思われるのですが具体的にどの値をどのぐらいに変更してあげると具合が良いのかとかが全くワカランです。JFドキュメント読んでもいまいちピンと来ません。5.5 に同じ問題事例が載ってるんだけどなぁ...
で、とりあえず retrans をデフォルトの3から5にしてみたところ倍ぐらいに速くなるんだけど、根本的な解決じゃあないなぁ。ちうことで e1000 を新しくしてみます。intel のサイトからドライバダウンロードしてコンパイル中。
#e1000 をカーネル組み込みにしちゃってるので再コンパイルが必要なり
-- 追記 --
NFSサーバ、クライアントのどちらも e1000-5.2.30.1 にしてみた。で、mount オプションはデフォルトでやってみると、Read に関しては平均して2倍~1.5倍ぐらいの間になったみたい。若干速いね。でも、マダマダ途中で「パケットが詰まる」ような感じになるのでダメダメ。
更に mount オプションに retrans=5 にしてみたところ、とくに目立った変化は無い。5回程 1GByte のファイルの読み込みをやってみたところ、オプションつけない時より速いかも。ぐらいでした。数字的に2-3割速くなってるかな?
で、後はもうどうしようもないので、マウントオプションを変更させつつNFSに負荷テストするスクリプトを書いておいて今晩ひたすら走らせ続けてみようと思うのです。むーーーん。
TCPのNFSを (スコア:1)
思いました。思っただけだけど。
Re:TCPのNFSを (スコア:1)
それと、NIC を変えてみたりしてみたいところです。GbE で pxe が使える NIC というと e1000 な系かマザーボードのオンボードNIC系ぐらいかなぁ…うむむむむむむ
とりあえず、100BASE-TX だけど 3c905 と i82559 でテストしてみようかしらん。
$ set -o vi
Re:TCPのNFSを (スコア:1)
NFSサーバ側のNICがi82558で、NFS クライアントのNICが i82559 と 21140-AF でてすつしてみました。br0 となっているのは NFS クライアントの方です。
結果は 2GByte のシーケンシャルリードで 75Mbps 程度とふつーの成績でした。このときに NFS クライアントに例のメッセージは何も表示されません。むぅ。
このままでは非常に面白くないので、TCP NFS でマウントしてみた。結果はこれも 75Mbps 程度でふつー。システム負荷も UDP と特にかわりが無くてツマランですた
$ set -o vi