Message ID | 20210806201739.472806-1-Anna.Schumaker@Netapp.com (mailing list archive) |
---|---|
Headers | show |
Series | Add a tool for using the new sysfs files | expand |
Hey Anna, On 8/6/21 4:17 PM, schumaker.anna@gmail.com wrote: > From: Anna Schumaker <Anna.Schumaker@Netapp.com> > > These patches implement a tool that can be used to read and write the > sysfs files, with subcommands! They do need my extra patches to add in > srcaddr and dst_port to the xprt_info file. Let me know if I need to > resend adding support for kernels both with and without these patches. > > The following subcommands are implemented: > nfs-sysfs.py rpc-client > nfs-sysfs.py xprt > nfs-sysfs.py xprt set > nfs-sysfs.py xprt-switch > nfs-sysfs.py xprt-switch set > > So you can print out information about every xprt-switch with: > anna@client ~ % nfs-sysfs xprt-switch > switch 0: num_xprts 1, num_active 1, queue_len 0 > xprt 0: local, /var/run/gssproxy.sock [main] > switch 1: num_xprts 1, num_active 1, queue_len 0 > xprt 1: local, /var/run/rpcbind.sock [main] > switch 2: num_xprts 1, num_active 1, queue_len 0 > xprt 2: tcp, 192.168.111.1 [main] > switch 3: num_xprts 4, num_active 4, queue_len 0 > xprt 3: tcp, 192.168.111.188 [main] > xprt 4: tcp, 192.168.111.188 > xprt 5: tcp, 192.168.111.188 > xprt 6: tcp, 192.168.111.188 > > And information about each xprt: > anna@client ~ % nfs-sysfs xprt > xprt 0: local, /var/run/gssproxy.sock, port 0, state <MAIN,CONNECTED,BOUND> > Source: (einval), port 0, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > xprt 1: local, /var/run/rpcbind.sock, port 0, state <MAIN,CONNECTED,BOUND> > Source: (einval), port 0, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > xprt 2: tcp, 192.168.111.1, port 2049, state <MAIN,CONNECTED,BOUND> > Source: 192.168.111.222, port 959, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > xprt 3: tcp, 192.168.111.188, port 2049, state <MAIN,CONNECTED,BOUND> > Source: 192.168.111.222, port 921, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > xprt 4: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > Source: 192.168.111.222, port 726, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > xprt 5: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > Source: 192.168.111.222, port 671, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > xprt 6: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > Source: 192.168.111.222, port 934, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > You can use the `set` subcommand to change the dstaddr of individual xprts: > anna@client ~ % sudo nfs-sysfs xprt --id 4 > xprt 4: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > Source: 192.168.111.222, port 726, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > anna@client ~ % sudo nfs-sysfs xprt set --id 4 --dstaddr server2.nowheycreamery.com > xprt 4: tcp, 192.168.111.186, port 2049, state <CONNECTED,BOUND> > Source: 192.168.111.222, port 726, Requests: 2 > Congestion: cur 0, win 256, Slots: min 2, max 65536 > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > Or for changing the dstaddr of all xprts attached to a switch: > anna@client % ./nfs-sysfs.py xprt-switch --id 3 > switch 3: num_xprts 4, num_active 4, queue_len 0 > xprt 3: tcp, 192.168.111.188 [main] > xprt 4: tcp, 192.168.111.188 > xprt 5: tcp, 192.168.111.188 > xprt 6: tcp, 192.168.111.188 > anna@client % sudo ./nfs-sysfs.py xprt-switch set --id 4 --dstaddr server2.nowheycreamery.vm > switch 3: num_xprts 4, num_active 4, queue_len 0 > xprt 2: tcp, 192.168.111.186 [main] > xprt 3: tcp, 192.168.111.186 > xprt 5: tcp, 192.168.111.186 > xprt 6: tcp, 192.168.111.186 > > > What does everybody think? Is there any thing I should change about the > user input or output lines? How about other subcommands that should be > added with the initial submission? I have not play around with this new tool.. but I will! Looking forward to it... But... and I should have mention this in v1 my apologies. The rest of the NFS tools do not have have "nfs-" as the prefix only an "nfs"... As with nfs-iostat, I'll me more that will to take the patch with the '-' char, but I would prefer the man page and the installed script be call nfssysfs, just to say with the current naming conventions. steved. > > Thanks, > Anna > > > Anna Schumaker (9): > nfs-sysfs: Add an nfs-sysfs.py tool > nfs-sysfs.py: Add a command for printing xprt switch information > nfs-sysfs.py: Add a command for printing individual xprts > nfs-sysfs.py: Add a command for printing rpc-client information > nfs-sysfs.py: Add a command for changing xprt dstaddr > nfs-sysfs.py: Add a command for changing xprt-switch dstaddrs > nfs-sysfs.py: Add a command for changing xprt state > nfs-sysfs: Add a man page > nfs-sysfs: Add installation to the Makefile > > .gitignore | 2 + > configure.ac | 1 + > tools/Makefile.am | 2 +- > tools/nfs-sysfs/Makefile.am | 20 +++++++ > tools/nfs-sysfs/client.py | 27 +++++++++ > tools/nfs-sysfs/nfs-sysfs | 5 ++ > tools/nfs-sysfs/nfs-sysfs.man | 88 +++++++++++++++++++++++++++++ > tools/nfs-sysfs/nfs-sysfs.py | 23 ++++++++ > tools/nfs-sysfs/switch.py | 51 +++++++++++++++++ > tools/nfs-sysfs/sysfs.py | 28 ++++++++++ > tools/nfs-sysfs/xprt.py | 101 ++++++++++++++++++++++++++++++++++ > 11 files changed, 347 insertions(+), 1 deletion(-) > create mode 100644 tools/nfs-sysfs/Makefile.am > create mode 100644 tools/nfs-sysfs/client.py > create mode 100644 tools/nfs-sysfs/nfs-sysfs > create mode 100644 tools/nfs-sysfs/nfs-sysfs.man > create mode 100755 tools/nfs-sysfs/nfs-sysfs.py > create mode 100644 tools/nfs-sysfs/switch.py > create mode 100644 tools/nfs-sysfs/sysfs.py > create mode 100644 tools/nfs-sysfs/xprt.py >
Hi Steve, On Sun, Aug 8, 2021 at 12:30 PM Steve Dickson <steved@redhat.com> wrote: > > Hey Anna, > > On 8/6/21 4:17 PM, schumaker.anna@gmail.com wrote: > > From: Anna Schumaker <Anna.Schumaker@Netapp.com> > > > > These patches implement a tool that can be used to read and write the > > sysfs files, with subcommands! They do need my extra patches to add in > > srcaddr and dst_port to the xprt_info file. Let me know if I need to > > resend adding support for kernels both with and without these patches. > > > > The following subcommands are implemented: > > nfs-sysfs.py rpc-client > > nfs-sysfs.py xprt > > nfs-sysfs.py xprt set > > nfs-sysfs.py xprt-switch > > nfs-sysfs.py xprt-switch set > > > > So you can print out information about every xprt-switch with: > > anna@client ~ % nfs-sysfs xprt-switch > > switch 0: num_xprts 1, num_active 1, queue_len 0 > > xprt 0: local, /var/run/gssproxy.sock [main] > > switch 1: num_xprts 1, num_active 1, queue_len 0 > > xprt 1: local, /var/run/rpcbind.sock [main] > > switch 2: num_xprts 1, num_active 1, queue_len 0 > > xprt 2: tcp, 192.168.111.1 [main] > > switch 3: num_xprts 4, num_active 4, queue_len 0 > > xprt 3: tcp, 192.168.111.188 [main] > > xprt 4: tcp, 192.168.111.188 > > xprt 5: tcp, 192.168.111.188 > > xprt 6: tcp, 192.168.111.188 > > > > And information about each xprt: > > anna@client ~ % nfs-sysfs xprt > > xprt 0: local, /var/run/gssproxy.sock, port 0, state <MAIN,CONNECTED,BOUND> > > Source: (einval), port 0, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > xprt 1: local, /var/run/rpcbind.sock, port 0, state <MAIN,CONNECTED,BOUND> > > Source: (einval), port 0, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > xprt 2: tcp, 192.168.111.1, port 2049, state <MAIN,CONNECTED,BOUND> > > Source: 192.168.111.222, port 959, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > xprt 3: tcp, 192.168.111.188, port 2049, state <MAIN,CONNECTED,BOUND> > > Source: 192.168.111.222, port 921, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > xprt 4: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > > Source: 192.168.111.222, port 726, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > xprt 5: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > > Source: 192.168.111.222, port 671, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > xprt 6: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > > Source: 192.168.111.222, port 934, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > > > You can use the `set` subcommand to change the dstaddr of individual xprts: > > anna@client ~ % sudo nfs-sysfs xprt --id 4 > > xprt 4: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> > > Source: 192.168.111.222, port 726, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > anna@client ~ % sudo nfs-sysfs xprt set --id 4 --dstaddr server2.nowheycreamery.com > > xprt 4: tcp, 192.168.111.186, port 2049, state <CONNECTED,BOUND> > > Source: 192.168.111.222, port 726, Requests: 2 > > Congestion: cur 0, win 256, Slots: min 2, max 65536 > > Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 > > > > Or for changing the dstaddr of all xprts attached to a switch: > > anna@client % ./nfs-sysfs.py xprt-switch --id 3 > > switch 3: num_xprts 4, num_active 4, queue_len 0 > > xprt 3: tcp, 192.168.111.188 [main] > > xprt 4: tcp, 192.168.111.188 > > xprt 5: tcp, 192.168.111.188 > > xprt 6: tcp, 192.168.111.188 > > anna@client % sudo ./nfs-sysfs.py xprt-switch set --id 4 --dstaddr server2.nowheycreamery.vm > > switch 3: num_xprts 4, num_active 4, queue_len 0 > > xprt 2: tcp, 192.168.111.186 [main] > > xprt 3: tcp, 192.168.111.186 > > xprt 5: tcp, 192.168.111.186 > > xprt 6: tcp, 192.168.111.186 > > > > > > What does everybody think? Is there any thing I should change about the > > user input or output lines? How about other subcommands that should be > > added with the initial submission? > I have not play around with this new tool.. but I will! Looking > forward to it... But... and I should have mention this in v1 > my apologies. > > The rest of the NFS tools do not have have "nfs-" as the > prefix only an "nfs"... As with nfs-iostat, I'll me more that > will to take the patch with the '-' char, but I would > prefer the man page and the installed script be call nfssysfs, > just to say with the current naming conventions. No problem! Changing the name of the tool should be easy enough. I'm not committed to the name either, so if anybody has a better name in mind please let me know! Anna > > steved. > > > > > Thanks, > > Anna > > > > > > Anna Schumaker (9): > > nfs-sysfs: Add an nfs-sysfs.py tool > > nfs-sysfs.py: Add a command for printing xprt switch information > > nfs-sysfs.py: Add a command for printing individual xprts > > nfs-sysfs.py: Add a command for printing rpc-client information > > nfs-sysfs.py: Add a command for changing xprt dstaddr > > nfs-sysfs.py: Add a command for changing xprt-switch dstaddrs > > nfs-sysfs.py: Add a command for changing xprt state > > nfs-sysfs: Add a man page > > nfs-sysfs: Add installation to the Makefile > > > > .gitignore | 2 + > > configure.ac | 1 + > > tools/Makefile.am | 2 +- > > tools/nfs-sysfs/Makefile.am | 20 +++++++ > > tools/nfs-sysfs/client.py | 27 +++++++++ > > tools/nfs-sysfs/nfs-sysfs | 5 ++ > > tools/nfs-sysfs/nfs-sysfs.man | 88 +++++++++++++++++++++++++++++ > > tools/nfs-sysfs/nfs-sysfs.py | 23 ++++++++ > > tools/nfs-sysfs/switch.py | 51 +++++++++++++++++ > > tools/nfs-sysfs/sysfs.py | 28 ++++++++++ > > tools/nfs-sysfs/xprt.py | 101 ++++++++++++++++++++++++++++++++++ > > 11 files changed, 347 insertions(+), 1 deletion(-) > > create mode 100644 tools/nfs-sysfs/Makefile.am > > create mode 100644 tools/nfs-sysfs/client.py > > create mode 100644 tools/nfs-sysfs/nfs-sysfs > > create mode 100644 tools/nfs-sysfs/nfs-sysfs.man > > create mode 100755 tools/nfs-sysfs/nfs-sysfs.py > > create mode 100644 tools/nfs-sysfs/switch.py > > create mode 100644 tools/nfs-sysfs/sysfs.py > > create mode 100644 tools/nfs-sysfs/xprt.py > > >
From: Anna Schumaker <Anna.Schumaker@Netapp.com> These patches implement a tool that can be used to read and write the sysfs files, with subcommands! They do need my extra patches to add in srcaddr and dst_port to the xprt_info file. Let me know if I need to resend adding support for kernels both with and without these patches. The following subcommands are implemented: nfs-sysfs.py rpc-client nfs-sysfs.py xprt nfs-sysfs.py xprt set nfs-sysfs.py xprt-switch nfs-sysfs.py xprt-switch set So you can print out information about every xprt-switch with: anna@client ~ % nfs-sysfs xprt-switch switch 0: num_xprts 1, num_active 1, queue_len 0 xprt 0: local, /var/run/gssproxy.sock [main] switch 1: num_xprts 1, num_active 1, queue_len 0 xprt 1: local, /var/run/rpcbind.sock [main] switch 2: num_xprts 1, num_active 1, queue_len 0 xprt 2: tcp, 192.168.111.1 [main] switch 3: num_xprts 4, num_active 4, queue_len 0 xprt 3: tcp, 192.168.111.188 [main] xprt 4: tcp, 192.168.111.188 xprt 5: tcp, 192.168.111.188 xprt 6: tcp, 192.168.111.188 And information about each xprt: anna@client ~ % nfs-sysfs xprt xprt 0: local, /var/run/gssproxy.sock, port 0, state <MAIN,CONNECTED,BOUND> Source: (einval), port 0, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 xprt 1: local, /var/run/rpcbind.sock, port 0, state <MAIN,CONNECTED,BOUND> Source: (einval), port 0, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 xprt 2: tcp, 192.168.111.1, port 2049, state <MAIN,CONNECTED,BOUND> Source: 192.168.111.222, port 959, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 xprt 3: tcp, 192.168.111.188, port 2049, state <MAIN,CONNECTED,BOUND> Source: 192.168.111.222, port 921, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 xprt 4: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> Source: 192.168.111.222, port 726, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 xprt 5: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> Source: 192.168.111.222, port 671, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 xprt 6: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> Source: 192.168.111.222, port 934, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 You can use the `set` subcommand to change the dstaddr of individual xprts: anna@client ~ % sudo nfs-sysfs xprt --id 4 xprt 4: tcp, 192.168.111.188, port 2049, state <CONNECTED,BOUND> Source: 192.168.111.222, port 726, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 anna@client ~ % sudo nfs-sysfs xprt set --id 4 --dstaddr server2.nowheycreamery.com xprt 4: tcp, 192.168.111.186, port 2049, state <CONNECTED,BOUND> Source: 192.168.111.222, port 726, Requests: 2 Congestion: cur 0, win 256, Slots: min 2, max 65536 Queues: binding 0, sending 0, pending 0, backlog 0, tasks 0 Or for changing the dstaddr of all xprts attached to a switch: anna@client % ./nfs-sysfs.py xprt-switch --id 3 switch 3: num_xprts 4, num_active 4, queue_len 0 xprt 3: tcp, 192.168.111.188 [main] xprt 4: tcp, 192.168.111.188 xprt 5: tcp, 192.168.111.188 xprt 6: tcp, 192.168.111.188 anna@client % sudo ./nfs-sysfs.py xprt-switch set --id 4 --dstaddr server2.nowheycreamery.vm switch 3: num_xprts 4, num_active 4, queue_len 0 xprt 2: tcp, 192.168.111.186 [main] xprt 3: tcp, 192.168.111.186 xprt 5: tcp, 192.168.111.186 xprt 6: tcp, 192.168.111.186 What does everybody think? Is there any thing I should change about the user input or output lines? How about other subcommands that should be added with the initial submission? Thanks, Anna Anna Schumaker (9): nfs-sysfs: Add an nfs-sysfs.py tool nfs-sysfs.py: Add a command for printing xprt switch information nfs-sysfs.py: Add a command for printing individual xprts nfs-sysfs.py: Add a command for printing rpc-client information nfs-sysfs.py: Add a command for changing xprt dstaddr nfs-sysfs.py: Add a command for changing xprt-switch dstaddrs nfs-sysfs.py: Add a command for changing xprt state nfs-sysfs: Add a man page nfs-sysfs: Add installation to the Makefile .gitignore | 2 + configure.ac | 1 + tools/Makefile.am | 2 +- tools/nfs-sysfs/Makefile.am | 20 +++++++ tools/nfs-sysfs/client.py | 27 +++++++++ tools/nfs-sysfs/nfs-sysfs | 5 ++ tools/nfs-sysfs/nfs-sysfs.man | 88 +++++++++++++++++++++++++++++ tools/nfs-sysfs/nfs-sysfs.py | 23 ++++++++ tools/nfs-sysfs/switch.py | 51 +++++++++++++++++ tools/nfs-sysfs/sysfs.py | 28 ++++++++++ tools/nfs-sysfs/xprt.py | 101 ++++++++++++++++++++++++++++++++++ 11 files changed, 347 insertions(+), 1 deletion(-) create mode 100644 tools/nfs-sysfs/Makefile.am create mode 100644 tools/nfs-sysfs/client.py create mode 100644 tools/nfs-sysfs/nfs-sysfs create mode 100644 tools/nfs-sysfs/nfs-sysfs.man create mode 100755 tools/nfs-sysfs/nfs-sysfs.py create mode 100644 tools/nfs-sysfs/switch.py create mode 100644 tools/nfs-sysfs/sysfs.py create mode 100644 tools/nfs-sysfs/xprt.py