Network and Storage Protocols

Linux NFS Client latency statistics

dcornely1
15,951 Views

Hello,

I've been trying for a while to find this information but it seems it simply isn't possible at this point.  What I'm looking for is a tool that runs on a Linux (RHEL) NFS client that can show me latency for read & write operations against the mounted NFS shares.  I know how to get all the other data like # of operations, throughput and such but I can't find a single tool that will actually tell me the latency from a client-side perspective.  For example, if I run iostat on linux, I can get await & svctm for block devices in milliseconds -- but not for NFS mounts!!

Does anyone know how to do this?

Specifically, I need something I can run via the command line on the Linux client that is reading and/or writing to an NFS mounted share that will show me the latency for this activity from the client's perspective.  It may be that this only exists for NFSv4 but I'm not sure...

Thank you!

-Dave

1 ACCEPTED SOLUTION

aborzenkov
15,951 Views

In this case it would be prudent to mark it as correct answer, would not it? ☺

View solution in original post

6 REPLIES 6

lukasz_borek
15,951 Views

nfsstat?

dcornely1
15,951 Views

Thanks but no, nfsstat doesn't provide latency information.  It also doesn't show real-time data so I can't use it to see what current activity is.

aborzenkov
15,951 Views

The needed counters were added to Linux kernel in 2.6.17. If you have this version (or vendor kernel that backported it) you could use nfs-iostat (http://git.linux-nfs.org/?p=steved/nfs-utils.git;a=blob;f=tools/nfs-iostat/nfs-iostat.py;h=9626d42609b9485c7fda0c9ef69d698f9fa929fd;hb=HEAD) to obtain exactly the information you need.

dcornely1
15,951 Views

Bingo!  Thanks man!  For those that are interested, here's a sample output:

$ python nfs-iostat.py

sdlab01:/vol/ora_ocr_vote_C2 mounted on /dave:

   op/s         rpc bklog
   0.00            0.00
read:             ops/s            kB/s           kB/op         retrans         avg RTT (ms)    avg exe (ms)
                  0.000           0.000           0.000        0 (0.0%)           0.000           0.000
write:            ops/s            kB/s           kB/op         retrans         avg RTT (ms)    avg exe (ms)
                  0.000           0.000           0.000        0 (0.0%)           0.000           0.000

The RTT (round-trip time) is exactly what I was after.

aborzenkov
15,952 Views

In this case it would be prudent to mark it as correct answer, would not it? ☺

dcornely1
15,951 Views

Indeed - I'm not familiar with the points system here so I just clicked whereever it said helpful and correct.

Public