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が枯渇して逆に困る。