123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- /*
- * User-space visible declarations for NFS client per-mount
- * point statistics
- *
- * Copyright (C) 2005, 2006 Chuck Lever <cel@netapp.com>
- *
- * NFS client per-mount statistics provide information about the
- * health of the NFS client and the health of each NFS mount point.
- * Generally these are not for detailed problem diagnosis, but
- * simply to indicate that there is a problem.
- *
- * These counters are not meant to be human-readable, but are meant
- * to be integrated into system monitoring tools such as "sar" and
- * "iostat". As such, the counters are sampled by the tools over
- * time, and are never zeroed after a file system is mounted.
- * Moving averages can be computed by the tools by taking the
- * difference between two instantaneous samples and dividing that
- * by the time between the samples.
- */
- #ifndef _LINUX_NFS_IOSTAT
- #define _LINUX_NFS_IOSTAT
- #define NFS_IOSTAT_VERS "1.1"
- /*
- * NFS byte counters
- *
- * 1. SERVER - the number of payload bytes read from or written
- * to the server by the NFS client via an NFS READ or WRITE
- * request.
- *
- * 2. NORMAL - the number of bytes read or written by applications
- * via the read(2) and write(2) system call interfaces.
- *
- * 3. DIRECT - the number of bytes read or written from files
- * opened with the O_DIRECT flag.
- *
- * These counters give a view of the data throughput into and out
- * of the NFS client. Comparing the number of bytes requested by
- * an application with the number of bytes the client requests from
- * the server can provide an indication of client efficiency
- * (per-op, cache hits, etc).
- *
- * These counters can also help characterize which access methods
- * are in use. DIRECT by itself shows whether there is any O_DIRECT
- * traffic. NORMAL + DIRECT shows how much data is going through
- * the system call interface. A large amount of SERVER traffic
- * without much NORMAL or DIRECT traffic shows that applications
- * are using mapped files.
- *
- * NFS page counters
- *
- * These count the number of pages read or written via nfs_readpage(),
- * nfs_readpages(), or their write equivalents.
- *
- * NB: When adding new byte counters, please include the measured
- * units in the name of each byte counter to help users of this
- * interface determine what exactly is being counted.
- */
- enum nfs_stat_bytecounters {
- NFSIOS_NORMALREADBYTES = 0,
- NFSIOS_NORMALWRITTENBYTES,
- NFSIOS_DIRECTREADBYTES,
- NFSIOS_DIRECTWRITTENBYTES,
- NFSIOS_SERVERREADBYTES,
- NFSIOS_SERVERWRITTENBYTES,
- NFSIOS_READPAGES,
- NFSIOS_WRITEPAGES,
- __NFSIOS_BYTESMAX,
- };
- /*
- * NFS event counters
- *
- * These counters provide a low-overhead way of monitoring client
- * activity without enabling NFS trace debugging. The counters
- * show the rate at which VFS requests are made, and how often the
- * client invalidates its data and attribute caches. This allows
- * system administrators to monitor such things as how close-to-open
- * is working, and answer questions such as "why are there so many
- * GETATTR requests on the wire?"
- *
- * They also count anamolous events such as short reads and writes,
- * silly renames due to close-after-delete, and operations that
- * change the size of a file (such operations can often be the
- * source of data corruption if applications aren't using file
- * locking properly).
- */
- enum nfs_stat_eventcounters {
- NFSIOS_INODEREVALIDATE = 0,
- NFSIOS_DENTRYREVALIDATE,
- NFSIOS_DATAINVALIDATE,
- NFSIOS_ATTRINVALIDATE,
- NFSIOS_VFSOPEN,
- NFSIOS_VFSLOOKUP,
- NFSIOS_VFSACCESS,
- NFSIOS_VFSUPDATEPAGE,
- NFSIOS_VFSREADPAGE,
- NFSIOS_VFSREADPAGES,
- NFSIOS_VFSWRITEPAGE,
- NFSIOS_VFSWRITEPAGES,
- NFSIOS_VFSGETDENTS,
- NFSIOS_VFSSETATTR,
- NFSIOS_VFSFLUSH,
- NFSIOS_VFSFSYNC,
- NFSIOS_VFSLOCK,
- NFSIOS_VFSRELEASE,
- NFSIOS_CONGESTIONWAIT,
- NFSIOS_SETATTRTRUNC,
- NFSIOS_EXTENDWRITE,
- NFSIOS_SILLYRENAME,
- NFSIOS_SHORTREAD,
- NFSIOS_SHORTWRITE,
- NFSIOS_DELAY,
- NFSIOS_PNFS_READ,
- NFSIOS_PNFS_WRITE,
- __NFSIOS_COUNTSMAX,
- };
- /*
- * NFS local caching servicing counters
- */
- enum nfs_stat_fscachecounters {
- NFSIOS_FSCACHE_PAGES_READ_OK,
- NFSIOS_FSCACHE_PAGES_READ_FAIL,
- NFSIOS_FSCACHE_PAGES_WRITTEN_OK,
- NFSIOS_FSCACHE_PAGES_WRITTEN_FAIL,
- NFSIOS_FSCACHE_PAGES_UNCACHED,
- __NFSIOS_FSCACHEMAX,
- };
- #endif /* _LINUX_NFS_IOSTAT */
|