nfsstat -h [ ip_address | host_name ]
nfsstat -l
nfsstat -z
nfsstat -d
nfsstat -C
nfsstat [ -c ] [ -t ]
If the interval argument is specified, nfsstat continuously displays the summary information for the following NFS requests: getattr, lookup, readlink, read, write, create, remove, and readdir/readdirplus. The first line of data displayed, and every 20th line thereafter, contains cumulative statistics. Each subsequent line shows incremental statistics for the interval (in seconds) since the last display.
Per-client statistics can also be collected and displayed by enabling the nfs.per_client_stats.enable options (using the options command - see na_options(1)) and invoking nfsstat with the -h or the -l options. Per-client statistics are collected for up to the first 256 NFS clients that have mounted the filesystem on the given filer.
Statistics for read and write sizes are also displayed as number of read or write requests made by each client grouped by size of request. Without this option, the cumulative statistics for all clients are displayed.
no deferred msg processed
Number of NFS requests unqueued
and processed from NFS over TCP
connections that had been put
on a queue waiting for NFS
resources to become available.
This is not the same as number
of NFS connections queued up
waiting for resources. Note
that one connection can contain
more than one NFS requests
waiting to be processed.
(cumulative) active Two values are printed here. The maximum (cumulative) number of entries available in the NFS operation table and the total number of entries processing requests at that time.
tcp input flowcontrol xmit
Number of times the Filer went
into transmit flow control.
sockets zapped nfs Number of nfs sockets disconnected because the send upcall argument in the underlying tcp socket had been zeroed.
sockets zapped tcp Number of tcp sockets disconnected because both the send and receive upcall arguments in that tcp socket had been zeroed.
v2 mount (requested, granted, denied) The requested is the number of v2 mount requests. The granted is the number of mount requests granted access. The denied is the number denied access.
v2 unmount (requested, granted, denied) The requested is the number of v2 unmount requests. The granted is the number of unmount requests granted. The denied is the number denied.
v2 unmount all (requested, granted, denied) The requested is the number of v2 unmount all requests. The granted is the number of unmount all requests granted. The denied is the number denied.
v3 mount (requested, granted, denied) The requested is the number of v3 mount requests. The granted is the number of mount requests granted access. The denied is the number denied access.
v3 unmount (requested, granted, denied) The requested is the number of v3 unmount requests. The granted is the number of unmount requests granted. The denied is the number denied.
v3 unmount all (requested, granted, denied) The requested is the number of v3 unmount all requests. The granted is the number of unmount all requests granted. The denied is the number denied.
access cache (hits, misses, refresh) The hits are the number of requests which were serviced by an entry already in the access cache. The misses are the number of requests which were not serviced by an entry already in the cache. The refresh are the number of entries which were set to expire, but were refreshed in place. Note that in general the ratio hits to the sum of hits and miss should be high. I.e., we want significantly more hits than misses.
access cache lookup requests (curr, total, max) The curr is the number of current requests which are being serviced. This number is also reprentative of the number of entries on the export worker queue. The total is the sum of all requests. The max is the high water mark of the curr counter.
access cache (loaded, max)
The loaded is the current number
of entries in the access
cache. The max is the high
water mark of the loaded
counter.
access cache thread signals (scrub, fill, clear) The scrub is the number of times the mount assist thread has been signaled to flush the access cache. The fill is the number of times the mount assist thread has been signaled to start processing the entries on the export worker queue. The clear is the number of times the mount assist thread has been signaled to throw-away all of the entries on the export worker queue.
access cache flushes during (scrub, fill, flush) The scrub is the number of access cache entries which have been expired due to exceeding the matching timer in either the option nfs.export.neg.time_out or nfs.export.pos.timeout during a scrub of the access cache. The fill is the number of such entries expired during a traversal of the access cache as the export worker queue is serviced. The flush is the number expired during an explicit flush of the access cache.
access cache harvests during (scrub, fill, flush) The scrub is the number of access cache entries which have been expired due to exceeding the timer for the option nfs.export.harvest.timeout during a scrub of the access cache. The fill is the number of such entries expired during a traversal of the access cache as the export worker queue is serviced. The flush is currently not implemented.
access cache name service errors causing not caches
(ro/rw, root)
The ro/rw is the number of name
service fatal errors which have
resulted in the access rights,
as determined during the fill
of a cache miss, not being
stored in the access cache for
either a rw or ro access check.
The root is the corrosponding
number of such errors for the
root access check.
access cache name service errors via invalid caches
(ro/rw, root)
The ro/rw is the number of name
service lookups errors, as
determined during the fill of a
cache miss, which occur when
there are no IP in the access
rules. At such times, we
silently reject NFS and mountd
requests. The root is the corrosponding
number of such
errors for the root access
check.
access cache provisional access denied via name lookup failure (ro/rw, root) The ro/rw is the number of ro or rw access cache entries which were not filled because provisional access was turned off and there was a name service error in doing the reverse name lookup. The root is the corrosponding number of such errors for the root access check.
access cache provisional access denied via names required (ro/rw, root) The ro/rw is the number of ro or rw access cache entries which were not filled because provisional access was turned off, the rules had only names present, and an attempt was made to service the request based strictly on IP. Since no IP were present in the export rule, the request is rejected. The root is the corrosponding number of such errors for the root access check.
assist queue (queued, split mbufs, drop for EAGAIN) The queued is the number of NFS requests which are put on the assist queue. The "split mbufs" is the number of NFS requests in which data spans multiple mbufs. The "drop for EAGAIN" is the number of NFS requests which were put on the assist queue for servicing an access cache miss and for which name service errors resulted in the request being dropped.
RPCSEC_GSS context limit
The limit on the RPCSEC_GSS
context table. This limit is
defined via the nfs.rpcsec.ctx.high
maximum context count
The maximum number of RPCSEC_GSS
contexts ever allocated
since the last boot (if -l is
specified) or the last time the
statistics were zeroed via the
-z option.
context reclaim callbacks
context idle/expired scans
vm pressure callbacks
Each of these three statistics
counts an asynchronous attempt
(callback) to reclaim least
recently used contexts from the
RPCSEC_GSS context table.
The "context reclaim callbacks" statistic counts the number of callbacks triggered by the RPCSEC_GSS subsystem, due to a deferred reclaim (because ONTAP could not suspend).
The "context idle/expired scans" statistic counts the number of periodic scans to look for expired or idle contexts. A context is considered idle if it has not been used for the number of seconds set in the nfs.rpcsec.ctx.idle option.
The "vm pressure callbacks" statistic counts the number of times the ONTAP VM subsystem asked the RPCSEC_GSS subsystem to release memory back to the system free list of memory.
contexts deleted due to context limit Counts the RPCSEC_GSS contexts deleted due to the current context count already being at the context limit whenever a new context needs to be created. The least recently used context will be deleted.
contexts deleted due to idle/expiration Counts the number of RPCSEC_GSS contexts deleted because the expired or were idle.
requests exceeding timeout
The number of NFS requests
which exceeded the timer set in
the option nfs.response.trig_ger.
nullrecv The number of times an RPC call was not available when it was thought to be received.
The server NFS display shows the number of NFS calls received (calls) and rejected (badcalls), and the counts and percentages for the various calls that were made.
Only a count is displayed for NULL and COMPOUND requests. Percentages are displayed for all operations received in COMPOUND requests relative to the total number of operations. The total calls displayed under the TCP, UDP and Server nfs headings represents the sum of all RPC requests received from NFSV2, NFSV3 and NFSV4 clients and do not take into account any operations in COMPOUND requests.
The -h and -l options display the combined client information for both the live filer and the failed filer.
The NFS statistics are cumulative. That is, a giveback operation does not zero out the NFS statistics. After giving back the failed filer's resources, the live filer does not subtract the statistics about NFS operations it performed on behalf of the failed filer when it was in takeover mode.