[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#857043: nfs-common: Can nfsstat be made to show timeouts per mount point or globally for the machine?



Package: nfs-common
Version: 1:1.2.8-9

I am looking for a way to detect if a machine is currently experiencing
NFS hangs or not, and after reading the kernel source code I noticed the
timeouts nfs statistics value that would show this.  I further came across
<URL: http://docs.oracle.com/cd/E19253-01/816-4555/netmonitor-12/index.html >
which show how to get the value printed by running 'nfsstat -c'.  But on
Debian, there is no timeouts value printed by 'nfsstat -c'.

Am I doing it wrong?  This is what I get from nfsstat 

Client rpc stats:
calls      retrans    authrefrsh
110415905   23636      110416360

Client nfs v3:
null         getattr      setattr      lookup       access       readlink     
0         0% 60575279 54% 453762    0% 16817036 15% 14175296 12% 125       0% 
read         write        create       mkdir        symlink      mknod        
4207868   3% 8249979   7% 169957    0% 3626      0% 822       0% 80        0% 
remove       rmdir        rename       link         readdir      readdirplus  
428449    0% 3313      0% 464045    0% 289131    0% 2924687   2% 1646905   1% 
fsstat       fsinfo       pathconf     commit       
5921      0% 2         0% 1         0% 0         0% 

I was hoping for something looking more like this:

Client rpc:
Connection oriented:
calls    badcalls  badxids  timeouts newcreds  badverfs   timers     
1595799  1511      59       297      0         0          0          
cantconn nomem     interrupts 
1198      0         7          
Connectionless:
calls    badcalls  retrans  badxids  timeouts  newcreds   badverfs   
80785    3135      25029    193      9543      0          0          
timers   nomem     cantsend   
17399    0         0          

Client nfs:
calls    badcalls  clgets   cltoomany  
1640097  3112      1640097  0          
Version 2: (46366 calls)
null     getattr   setattr  root     lookup     readlink  read       
0 0%     6589 14%  2202 4%  0 0%     11506 24%  0 0%      7654 16%   
wrcache  write     create   remove   rename     link      symlink    
0 0%     13297 28% 1081 2%  0 0%     0 0%       0 0%      0 0%       
mkdir    rmdir     readdir  statfs     
24 0%    0 0%      906 1%   3107 6%    
Version 3: (1585571 calls)
null    getattr    setattr  lookup     access     readlink  read     
0 0%    508406 32% 10209 0% 263441 16% 400845 25% 3065 0%  117959 7%
write    create     mkdir    symlink    mknod    remove   rmdir 
69201 4% 7615 0%    42 0%    16 0%      0 0%     7875 0%  51 0%      
rename   link       readdir  readdir+   fsstat   fsinfo   pathconf   
929 0%   597 0%     3986 0%  185145 11% 942 0%   300 0%   583 0%     
commit     
4364 0%    
 
Client nfs_acl:
Version 2: (3105 calls)
null       getacl     setacl     getattr    access     
0 0%       0 0%       0 0%       3105 100%  0 0%       
Version 3: (5055 calls)
null       getacl     setacl     
0 0%       5055 100%  0 0%    


I can find a per-process NFS timeouts count in /proc/$$/mountstats:

device nfsserver:/nfs/server/path mounted on /nfs/server/path with fstype nfs statvers=1.1
        opts:   rw,vers=3,rsize=65536,wsize=65536,namlen=255,acregmin=3,acregmax=60,acdirmin=30,acdirmax=60,soft,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.11.12.13,mountvers=3,mountport=4048,mountproto=udp,local_lock=all
        age:    7691364
        caps:   caps=0x3fe7,wtmult=4096,dtsize=8192,bsize=0,namlen=255
        sec:    flavor=1,pseudoflavor=1
        events: 60575385 723194904 1026044 35107133 16087435 8158089 752137466 69862882 35157 3887894 44422751 108980223 4740836 410819 15329462 293279 52346959 13445026 0 51266 8993532 1217 0 0 0 0 0 
        bytes:  164164451145 214028657512 0 0 40640451492 180817114394 11641662 44422751 
        RPC iostats version: 1.0  p/v: 100003/3 (nfs)
        xprt:   tcp 925 1 6810 0 2 110441641 110416726 109 2645913361036 0 248 53868797 22200775
        per-op statistics
                NULL: 0 0 0 0 0 0 0 0
             GETATTR: 60575379 60575381 0 9544619508 6784438976 452061 76505876 78129998
             SETATTR: 453778 453779 0 90066680 65344032 63712 590276 674384
              LOOKUP: 16817043 16817043 0 3314596236 3964783208 56762 34903770 35341541
              ACCESS: 14175369 14183675 5 2301023152 1701043560 1708922 4820888 7083181
            READLINK: 125 125 0 20472 18620 0 1112 1118
                READ: 4207868 4207869 0 714491244 41184781156 89800 22545589 22729177
               WRITE: 8250269 8265635 22 183002770728 1319488588 178252491 50489943 230625045
              CREATE: 169959 169959 0 37678972 46226800 861 1029589 1038039
               MKDIR: 3626 3626 0 762440 979232 26 23616 23867
             SYMLINK: 822 822 0 212004 223456 5 5109 5157
               MKNOD: 80 80 0 20148 21760 0 299 304
              REMOVE: 428449 428449 0 79497296 61696224 3302 2706552 2737673
               RMDIR: 3313 3313 0 634516 477072 22 5724 5940
              RENAME: 464046 464046 0 129453232 120651960 7046 5882116 5908093
                LINK: 289131 289131 0 72770368 67078392 2199 2564894 2585412
             READDIR: 2924687 2924687 0 514995436 13933369380 10350 3170214 3277591
         READDIRPLUS: 1646905 1646905 0 297559972 6868670432 84713 14240605 14381440
              FSSTAT: 5921 5921 0 974272 994728 50 8681 9039
              FSINFO: 2 2 0 232 328 0 1 1
            PATHCONF: 1 1 0 116 140 0 0 0
              COMMIT: 0 0 0 0 0 0 0 0


The third number in the per-op statistics lines is the timeout count per
operation.  But I am looking for the total for the machine / mount
point, not the per process count.

-- 
Happy hacking
Petter Reinholdtsen


Reply to: