NFS機能確認について
Linuxカーネルが古かったり、ネットワークカードが古いとPCI-ExpressやGB Etherのスループット
を出し切れないとの事でNFSマウントを利用して検証してみようと思いましたが、
なかなかDiscardや再送が発生する処理を出し切れてないので検証出来てません。
とりあえずNFSのレビューだけ取り合えず行いました。

メモ:
LinuxのカーネルがRHEL6などでないと、ネットワーク処理(送受信)が1コアでしか処理できず、
処理しているCPUコアが100%になってしまい処理が遅延してしまうとの事。
新しいLinuxカーネルではTx/Rx Multiqueueが改善されていて、複数のCPUコアを使用してネットワーク
送受信を処理出来るそうです。Linuxカーネルのバージョンによっては、パケットロスが発生するとの事。
CentOSであれば5.7、6以降を利用する方がいいとの事。
net.core.somaxconn(net.core.somaxconnはTCPソケットが受け付けた接続要求を格納するキュー)
などがディフォルトで128なので設定変更して暫定対応する方法も検討しても良いかもしれません。

NFSサービス用基本アプリ確認

[root@HOME001 nfs_dir]# /sbin/chkconfig --list rpcbind
rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@HOME001 nfs_dir]# /sbin/chkconfig --list nfslock
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
[root@HOME001 nfs_dir]# /sbin/chkconfig --list nfs
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@HOME001 nfs_dir]#


[root@HOME001 nfs_dir]# service rpcbind status
rpcbind (pid  1174) を実行中...
[root@HOME001 nfs_dir]#

[root@HOME001 nfs_dir]# service nfslock status
rpc.statd (pid  1192) を実行中...
[root@HOME001 nfs_dir]#

[root@HOME001 nfs_dir]# service nfs status
rpc.svcgssd は停止しています
rpc.mountd (pid 2565) を実行中...
nfsd (pid 2630 2629 2628 2627 2626 2625 2624 2623) を実行中...
rpc.rquotad (pid 2561) を実行中...
[root@HOME001 nfs_dir]#

NFS設定ファイル確認しサービスの有効化

[root@HOME001 nfs_dir]# cat /etc/hosts.allow | grep ALL
ALL : 192.168.11.0/255.255.255.0
[root@HOME001 nfs_dir]# cat /etc/hosts.deny | grep ALL
ALL:ALL
[root@HOME001 nfs_dir]#


[root@HOME001 nfs_dir]# vi /etc/exports
[root@HOME001 home]# cat /etc/exports
/home/nfs_dir 192.168.11.0/255.255.255.0(rw,sync,no_root_squash)
[root@HOME001 nfs_dir]# exportfs -ra
[root@HOME001 nfs_dir]# showmount -e
Export list for HOME001.localdomain:
/home/nfs_dir 192.168.11.0/255.255.255.0
[root@HOME001 nfs_dir]# exportfs -v
/home/nfs_dir   192.168.11.0/255.255.255.0(rw,wdelay,no_root_squash,no_subtree_check)
[root@HOME001 nfs_dir]#
[root@HOME001 home]# cat /proc/fs/nfs/exports
# Version 1.2
# Path Client(Flags) # IPs
/home/nfs_dir   192.168.11.0/255.255.255.0(rw,no_root_squash,sync,wdelay,no_subtree_check,uuid=549fba92:c5d34bdc:ad460fad:a3888c8a)
[root@HOME001 home]#

NFSクライアント側でのマウント

[root@HOME002 home]# mkdir nfs_home001
[root@HOME002 ~]# mount -t nfs -o rw home001:/home/nfs_dir /home/nfs_home001
[root@HOME002 ~]# df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/hda2             9.7G  4.6G  4.7G  50% /
/dev/hda1             251M   19M  220M   8% /boot
tmpfs                 125M     0  125M   0% /dev/shm
home001:/home/nfs_dir 4.6G  382M  4.0G   9% /home/nfs_home001
[root@HOME002 ~]#


[root@HOME002 nfs_home001]# hostname
HOME002.localdomain
[root@HOME002 nfs_home001]# pwd
/home/nfs_home001
[root@HOME002 nfs_home001]# touch test_nfs | echo "test for nfs" > test_nfs
[root@HOME002 nfs_home001]# ls -lh
合計 4.0K
-rw-r--r-- 1 root root 13  1月 18 11:46 test_nfs
[root@HOME002 nfs_home001]#

もし再起動しれも継続的に利用する場合はfstabに追記

[root@HOME002 nfs_home001]# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
sysfs                   /sys                    sysfs   defaults        0 0
LABEL=SWAP-hda3         swap                    swap    defaults        0 0
home001:/home/nfs_dir   /home/nfs_home001       nfs     defaults        0 0
[root@HOME002 nfs_home001]#

nfsmount

その他パフォーマンス確認
64MのファイルをNFSマウント上に作成中にnuttcpで0.1秒毎に確認して再送が発生の有無確認。
クライアントを増やして検証してみる。

dd if=/dev/zero of=/home/nfs_home001/nfs_check_file bs=64K count=1024
[root@HOME002 tools]# ./nuttcp  -v -i0.1 192.168.11.10
nuttcp-t: v7.1.6: socket
nuttcp-t: buflen=65536, nstream=1, port=5101 tcp -> 192.168.11.10
nuttcp-t: time limit = 10.00 seconds
nuttcp-t: connect to 192.168.11.10 with mss=1448, RTT=1.683 ms
nuttcp-t: send window size = 16384, receive window size = 87380
nuttcp-t: available send window = 12288, available receive window = 65535
nuttcp-r: v7.1.6: socket
nuttcp-r: buflen=65536, nstream=1, port=5101 tcp
nuttcp-r: interval reporting every 0.10 seconds
nuttcp-r: accept from 192.168.11.11
nuttcp-r: send window size = 22120, receive window size = 87380
nuttcp-r: available send window = 16590, available receive window = 65535
    0.0625 MB /   0.10 sec =    5.2407 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4874 Mbps     0 retrans
    0.1875 MB /   0.10 sec =   15.7282 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4862 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4856 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4861 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4850 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4862 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4858 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4858 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4858 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4859 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4856 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4859 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2428 Mbps     0 retrans
    0.1875 MB /   0.10 sec =   15.7293 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4851 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4862 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4859 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4854 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4861 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2427 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2429 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2430 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2428 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2427 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2428 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2431 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4854 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4861 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4860 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4859 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4823 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4881 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4857 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4856 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4857 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4837 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4861 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4840 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4858 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4865 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4851 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4861 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4862 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4863 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4860 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4836 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4860 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4864 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4861 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4848 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4839 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4862 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2427 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2430 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2428 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2428 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2429 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2430 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2429 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2425 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2431 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2430 Mbps     0 retrans
    0.0625 MB /   0.10 sec =    5.2424 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4860 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4854 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4866 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
    0.1250 MB /   0.10 sec =   10.4860 Mbps     0 retrans
    0.0000 MB /   0.10 sec =    0.0000 Mbps     0 retrans
nuttcp-t: 7.5625 MB in 10.13 real seconds = 764.50 KB/sec = 6.2628 Mbps
nuttcp-t: retrans = 0
nuttcp-t: 121 I/O calls, msec/call = 85.72, calls/sec = 11.95
nuttcp-t: 0.0user 5.9sys 0:10real 58% 0i+0d 0maxrss 0+5pf 0+417csw

nuttcp-r: 7.5625 MB in 10.13 real seconds = 764.43 KB/sec = 6.2622 Mbps
nuttcp-r: 5566 I/O calls, msec/call = 1.86, calls/sec = 549.43
nuttcp-r: 0.0user 0.1sys 0:10real 1% 0i+0d 324maxrss 0+21pf 5658+47csw
[root@HOME002 tools]#

nfstest

参考:
ネットワーク診断 ( nuttcp )
NFS(Network File System)の概要
NFS Serverとして動かす
net.core.somaxconnについて調べてみた