nfsの読み書きが遅くなった?

chiaマイニングでtmp2ディレクトリをnfsサーバとしている。chiaマイニングの3、4フェーズはtmp2をしている場合に使用される。

サーバのメモリ変更を契機に1日3plotを生成していたのが、1plotしか生成できなくなった。これはおかしいとメモリを16gから8gへ切り戻ししたが、変わらず。考えられることは、nfsがボトルネックとなっていると考えた。どうやら rsize wsize が関係しているのではないか。

今回のチューニングして遅くなったパターン。以下のページを参考に設定した。

https://manual.iij.jp/p2/nas/d-4-1-3.html

# cat /etc/fstab

nfsサーバ名:/対象ディレクトリ /マウントポイント nfs rw,sync,nfsvers=3,tcp,hard,intr,rsize=32768,wsize=32768 0 

初期の速かったパターン。一日3plot生成していた。デフォルト値を採用するので、size=131072,wsize=131072 となる。

# cat /etc/fstab

nfsサーバ名:/対象ディレクトリ /マウントポイント nfs defaults 0 0

コマンドで確認すると、 size=131072,wsize=131072 でした。つまり rsize=32768,wsize=32768にしたことにより遅くなったということか。

# nfsstat -m
 
rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=,mountvers=3,mountport=797,mountproto=udp,local_lock=none,addr=

最大値を指定してみるパターン。AWSの推奨値と記載されていたので期待できる。

# vi /etc/fstab

nfsサーバ名:/対象ディレクトリ /マウントポイント nfs rw,sync,nfsvers=3,tcp,hard,intr,rsize=1048576,wsize=10485760 0 0

というわけで最大値パターンで検証する。もちろんメモリは16Gに戻す。

# vi /etc/fstab

nfsサーバ名:/対象ディレクトリ /マウントポイント nfs rw,sync,nfsvers=3,tcp,hard,intr,rsize=1048576,wsize=10485760 0 0

rsize=131072,wsize=131072 であることを確認

# nfsstat -m

rw,sync,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=,mountvers=3,mountport=797,mountproto=tcp,local_lock=none,addr=

早速chiaマイニング開始

Tasks: 199 total,   1 running, 197 sleeping,   0 stopped,   1 zombie
%Cpu0  : 60.9 us,  1.7 sy,  0.0 ni, 15.1 id, 22.1 wa,  0.3 hi,  0.0 si,  0.0 st
%Cpu1  : 50.2 us,  1.3 sy,  0.0 ni, 14.4 id, 33.1 wa,  0.7 hi,  0.3 si,  0.0 st
%Cpu2  : 50.2 us,  2.3 sy,  0.0 ni, 20.5 id, 26.1 wa,  0.7 hi,  0.3 si,  0.0 st
%Cpu3  : 49.2 us,  2.0 sy,  0.0 ni,  8.7 id, 39.8 wa,  0.3 hi,  0.0 si,  0.0 st
MiB Mem :  15783.5 total,    131.3 free,   3311.8 used,  12340.4 buff/cache
MiB Swap:   8040.0 total,   8036.0 free,      4.0 used.  12136.0 avail Mem

何気にみたらRX-DRPが多いな。ボンディングモードは1(balance-rr)の送信のみのラウンドロビン。普通のスイッチングハブなのでこのモードです。受信のDRPなので関係ないかな。

# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
bond0            1500  2792119      0  20042 0       3225788      0     32      0 BMmRU
eno1             1500  1525749      0      0 0       1611800      0      0      0 BMsRU
eno2             1500  1266370      0      0 0       1613988      0      0      0 BMsRU
lo              65536    44525      0      0 0         44525      0      0      0 LRU

# cat /sys/class/net/bond0/bonding/mode
balance-rr 0

一応ボンディングモードを1(active-backup)にしたがDRPは変わらなかったのでもとに戻した。とりあえずもういい。本題はこれじゃない。

# nmcli c modify bond0 +bond.options "mode=1"
# nmcli c up bond0
接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/7)

# cat /sys/class/net/bond0/bonding/mode
active-backup 1

結果変わらず。tmp2をやめたら速くなりました。ようするにtmp2のフェーズ3、4の処理が遅かったということ。初期のはやかったパターンは謎ですが。

結論

tmp2はNAS等にしない。するならRAMDISKみたいな本気でやる。メモリを8Gから16Gにしたが、一日3plotの壁はこえれなかった。あまり速いとHDDが枯渇して逆に困る。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です