思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【FreeBSD13.4】ファイルサーバーのメンテ(5.5:閑話):2.5GbE v.s. 1GbE「NFS性能を比較してみた(1)」

2.5GbE/NICを装着した2台のマシンにて、NFSを用いたファイル転送により、2.5Gbeと1GbeのNFS性能の比較を行ってみます。【注*1

今回、メンテナス中のマシンは、NFSサーバーでもあり、NFSクライアントでもあるマシンとして、メンテナンスしています。
そこで、メンテ途中ですが、NFSサーバーとしての、2.5GbEと1GbEでのNFS性能を比較してみようと思います。

NFSクライアントはすでに2.5Gbe/NICを装着/設定済のUbuntu*2]を使うことにしました。

1. NFSサーバーの設定(FreeBSD13.4)とクライアント(Ubuntu)からのNFSマウント

(1)/etc/rc.confの設定変更(FreeBSD13.4)

まずは、現在メンテ中のFreeBSD13.4なマシンの設定を変更します。

root@freebsd:# cd /etc ; /etcに移動
root@freebsd:# vi /etc/rc.conf ; rc.confの修正

/etc/rc.confに、下記の黄色字部分を追加。

[..]

# NFSサーバー設定
nfs_server_enable="YES"
nfsv4_server_enable="YES"
nfsuserd_enable="YES"
# ローカルのドメイン名を設定
nfsuserd_flags="-domain mydomain.local"

[..]

(2)/etc/exportsの作成(FreeBSD13.4)
root@freebsd:# cd /etc ; /etcに移動
root@freebsd:# vi /etc/exports ; /etc/exportsを作成

下記の黄色字部分を記載。

今回は、NFS読み書きによるテストなので、とりあえず”/tmp”をexportします。

V4: /tmp -network 192.186.0.0 -mask 255.255.255.0
/tmp -maproot=root

(3)nfsの再起動(FreeBSD13.4)

nfsdとmountdを再起動します。

root@freebsd:# service nfsd start ; nfsを再起動
(4)NFSクライアントからマウント(Ubuntu24.02

メンテ済みのUbuntu24.02なマシンから、FreeBSD13.4なマシンのディスクをマウントします。

hoge@ubuntu:# sudo mount -t nfs 192.168.xx.yyy:/tmp /mnt/nfs ; FreeBSDのディスクをマウント。

2.ダミーファイルの作成

転送時間を計るためにFreeBSD上にダミーファイルを作成します。

ここでは、転送時間が短くて済む、”/dev/zero”から作成するのではなく、不定なデータを生成する”/dev/urandom”からダミーデータを作成します。

root@freebsd:# dd if=/dev/urandom of=/tmp/100G.dummy bs=1M count=1000 ; 100GByteのダミーファイルを作成する。

3. 2.5GbE v.s. 1GbE比較

  • 以下の作業では、”ファイルの上書き”に統一するために、あらかじめ、FreeBSD/Ubuntuの双方に同じファイルを事前に作成しています。
(1)FreeBSD->Ubuntuファイルコピー
hoge@ubuntu:# sudo su ; 以下のコマンドで時間をある程度、正確に測るために、
rootになる(*3)。
hoge@ubuntu:# copy /mnt/nfs/100G.dummy /VMSs ; FreeBSDからUbuntuにファイルコピー。

100Gbyteのランダムデータの転送時間は、15秒。

(2)Ubuntu->FreeBSDファイルコピー
hoge@ubuntu:# copy /VMSs/100G.dummy /mnt/nfs/100G.dummy2 ; UbuntuからFreeBSDにファイルコピー。

100Gbyteのランダムデータの転送時間は、17秒。

(3)FreeBSDのリンク速度変更

簡易的な比較とは言え、違うNICで確認しても、あまり意味がないと思いますので、FeeBSD側の”2.5Gbe/NIC”を強制的に”1Gbe”でリンクアップさせます。

root@freebsd:# ifconfig igc0 media 1000baseTX ; igc0を1Gbeに変更。
root@freebsd:# ifconfig -a ;

リンク速度を確認。


HUBのリンクステータスも1000Base-Tに変更されています(*4)。

(4)FreeBSD->Ubuntuファイルコピー(1GbE)
hoge@ubuntu:# copy /mnt/nfs/100G.dummy /VMSs ; FreeBSDからUbuntuにファイルコピー。

100Gbyteのランダムデータの転送時間は、13秒。

(5)Ubuntu->FreeBSDファイルコピー(1GbE)
hoge@ubuntu:# copy /VMSs/100G.dummy /mnt/nfs/100G.dummy2 ; UbuntuからFreeBSDにファイルコピー。

100Gbyteのランダムデータの転送時間は、16秒。

4.結果と推察

(1)結果

1回しか測定していないデータを比較しても、ほとんど意味がないのですが。。。。😅(*5

100Gbyteの
ダミーファイル
転送時間
1GbE 2.5GbE
FreeBSDUbuntu 13秒 15秒
UbuntuFreeBSD 16秒 17秒

NFSでの転送速度計測では、有意な差は出ませんでした😅。

(2)推察

現状では、推察しかできませんが。。。😅

  • Ubuntu
    • RDPを使うために、起動しているdeamonの数が多い。
    • ありあわせの余剰部品で組み立てたマシンで、性能が低い[*6]。
    • ローカルハードディスク(HDD)の性能、処理能力がオーバヘッドになっている(*7)。
    • FreeBSDNFSディスクにマウントする際のオプションが足りない(*8)。
  • FreeBSD13.4
    • ローカルハードディスク(HDD)の性能、処理能力がオーバヘッドになっている(*9)。
    • igcドライバーの、コンフィグレーション設定に何か不足がある。

現状では、これぐらいしか、推察しかできません😅。

メインファイルサーバーのメンテナンスが終わったら、再度、比較してみようと思います😅。

【次回に続く】

ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ

出典・引用・備考

*1:この投稿の内容は、特定の機種並びに特定の環境での確認結果になります。
同等機種や異なる環境での動作他を保証するものではありませんので、ご留意いただけます様お願いいたします。

*2:

*3:今回のコピー先に対するコピーコマンド実行時、sudoだとパスワードを求められるため、パスワード入力時間が誤差となるため。

*4:このHUBの場合、RJ45ジャックの左上が緑点灯している場合には、2.5GbEでリンクしていることを示します。

*5:最低でも、25回以上、計測して平均、中央値を出さないと、意味がないですが😅。

*6:

*7:SASではなく、SATAなので。

*8:ずいぶん昔に、”玄箱”をVine Linux化して、FreeBSDNFSマウントさせた際、色々なオプションを設定した記憶が。。。。😅

*9:SASではなく、SATAなので。