jc
jc copied to clipboard
Feature request - nfsiostat support
I will be completely honest, I'm sitting in a restaurant salivating thinking about getting back home and playing with this tool! The one thing that I have noticed that is missing that would make my life so much easier would be the inclusion of nfsiostat output support.
nfsiostat output is very similar to iostat, so it shouldn't be overly complicated to either tweak --iostat or create a new --nfsiostat command from the --iostat parser.
I'll come back and include some examples of the output to make your life a bit easier.
Thanks for creating this! Can't wait to get back home and check this out and kick the tires!
Hey thanks for the kind words and for the parser suggestion! Examples would be great and if it is similar to --iostat
then it could be fairly straightforward to port.
Okay, as promised, here is the output.
nfsiostat
# nfsiostat
192.168.128.220:/mnt/warm/archivedb mounted on /archive:
ops/s rpc bklog
4.234 0.000
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) avg queue (ms) errors
0.000 0.000 0.335 0 (0.0%) 6.013 6.239 0.013 0 (0.0%)
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) avg queue (ms) errors
0.000 0.000 0.000 0 (0.0%) 0.000 0.000 0.000 0 (0.0%)
192.168.128.221:/mnt/secondmount mounted on /blah:
ops/s rpc bklog
3.215 0.000
read: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) avg queue (ms) errors
0.000 0.000 0.335 0 (0.0%) 6.013 4.231 0.011 0 (0.0%)
write: ops/s kB/s kB/op retrans avg RTT (ms) avg exe (ms) avg queue (ms) errors
0.000 0.000 0.000 0 (0.0%) 0.000 0.000 0.000 0 (0.0%)
iostat
# iostat -xy
Linux 4.18.0-372.19.1.el8_6.x86_64 (myhost.domain.local) 10/25/2022 _x86_64_ (8 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
11.81 0.00 0.79 0.02 0.00 87.39
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 0.08 2.36 1.22 33.17 0.00 0.11 5.48 4.31 0.44 1.70 0.00 15.06 14.08 0.75 0.18
sdd 0.05 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.03 4.88 0.00 0.13 258.56 0.17 0.00
sdc 0.07 0.95 2.45 100.88 0.00 0.11 0.10 10.55 1.19 9.34 0.01 36.91 106.52 1.20 0.12
sdb 0.07 2.78 1.41 26.42 0.00 0.16 0.12 5.38 0.35 1.80 0.01 20.17 9.51 1.55 0.44
dm-0 0.01 0.01 0.02 0.34 0.00 0.00 0.00 0.00 1.90 61.13 0.00 4.39 23.15 0.15 0.00
dm-1 0.03 2.44 1.17 32.79 0.00 0.00 0.00 0.00 1.00 1.77 0.00 39.32 13.41 0.74 0.18
After looking at them side by side, I guess my memory was slightly off on the formatting. I guess they aren't so similar after all. :-)
Interesting, is this the same nfsiostat
program? If so, it looks like it was written in python 2.x.
https://github.com/kouril/nfs-utils/blob/master/tools/nfs-iostat/nfs-iostat.py
If there is an updated python 3.x version it might be easier to put in a Pull Request for a JSON output option. :)
Hi @kmickeletto I'm looking at implementing this parser soon. Could you let me know if this type of schema looks ok or if I'm missing anything? Thanks!
[
{
"filesystem": "192.168.128.220:/mnt/warm/archivedb",
"mount": "/archive",
"ops_sec": 4.234,
"rpc_bklog": 0.0,
"read": {
"ops_s": 0.0,
"kb_s": 0.0,
"kb_op": 0.335,
"retrans": 0,
"retrans_percent": 0.0,
"avg_rtt_ms": 6.013,
"avg_exe_ms": 6.239,
"avg_queue_ms": 0.013,
"errors": 0,
"errors_percent": 0.0
},
"write": {
"ops_s": 0.0,
"kb_s": 0.0,
"kb_op": 0.335,
"retrans": 0,
"retrans_percent": 0.0,
"avg_rtt_ms": 6.013,
"avg_exe_ms": 6.239,
"avg_queue_ms": 0.013,
"errors": 0,
"errors_percent": 0.0
}
}
]
Note, it looks like there is another (older?) version of nfsiostat
floating around. Not sure if that is still used: https://www.admin-magazine.com/HPC/Articles/Monitoring-NFS-Storage-with-nfsiostat
@kmickeletto any way you could get me an output sample with a count of 3 or 5? Something like:
$ nfsiostat 1 5
Thanks!
@kmickeletto I should be able to knock this parser out pretty quickly but I need a sample of nfsiostat
output with multiple runs. Could you send me the output of the following?
$ nfsiostat 1 5