diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-27 13:14:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-27 13:14:39 -0400 |
commit | d2c3ac7e7e39ec6d37e4114ae7444948561e59af (patch) | |
tree | c0e6a9eed0139de4e757fbf64498fe8c0b291e44 /Documentation/filesystems | |
parent | 546fac60739ef8d7cbf8ce0b8251a519f68b2804 (diff) | |
parent | 901f1379f6c9dc2d73b51971d129a6f7d5b9b20a (diff) |
Merge branch 'for-4.2' of git://linux-nfs.org/~bfields/linux
Pull nfsd updates from Bruce Fields:
"A relatively quiet cycle, with a mix of cleanup and smaller bugfixes"
* 'for-4.2' of git://linux-nfs.org/~bfields/linux: (24 commits)
sunrpc: use sg_init_one() in krb5_rc4_setup_enc/seq_key()
nfsd: wrap too long lines in nfsd4_encode_read
nfsd: fput rd_file from XDR encode context
nfsd: take struct file setup fully into nfs4_preprocess_stateid_op
nfsd: refactor nfs4_preprocess_stateid_op
nfsd: clean up raparams handling
nfsd: use swap() in sort_pacl_range()
rpcrdma: Merge svcrdma and xprtrdma modules into one
svcrdma: Add a separate "max data segs macro for svcrdma
svcrdma: Replace GFP_KERNEL in a loop with GFP_NOFAIL
svcrdma: Keep rpcrdma_msg fields in network byte-order
svcrdma: Fix byte-swapping in svc_rdma_sendto.c
nfsd: Update callback sequnce id only CB_SEQUENCE success
nfsd: Reset cb_status in nfsd4_cb_prepare() at retrying
svcrdma: Remove svc_rdma_xdr_decode_deferred_req()
SUNRPC: Move EXPORT_SYMBOL for svc_process
uapi/nfs: Add NFSv4.1 ACL definitions
nfsd: Remove dead declarations
nfsd: work around a gcc-5.1 warning
nfsd: Checking for acl support does not require fetching any acls
...
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/nfs/knfsd-stats.txt | 44 |
1 files changed, 4 insertions, 40 deletions
diff --git a/Documentation/filesystems/nfs/knfsd-stats.txt b/Documentation/filesystems/nfs/knfsd-stats.txt index 64ced5149d37..1a5d82180b84 100644 --- a/Documentation/filesystems/nfs/knfsd-stats.txt +++ b/Documentation/filesystems/nfs/knfsd-stats.txt | |||
@@ -68,16 +68,10 @@ sockets-enqueued | |||
68 | rate of change for this counter is zero; significantly non-zero | 68 | rate of change for this counter is zero; significantly non-zero |
69 | values may indicate a performance limitation. | 69 | values may indicate a performance limitation. |
70 | 70 | ||
71 | This can happen either because there are too few nfsd threads in the | 71 | This can happen because there are too few nfsd threads in the thread |
72 | thread pool for the NFS workload (the workload is thread-limited), | 72 | pool for the NFS workload (the workload is thread-limited), in which |
73 | or because the NFS workload needs more CPU time than is available in | 73 | case configuring more nfsd threads will probably improve the |
74 | the thread pool (the workload is CPU-limited). In the former case, | 74 | performance of the NFS workload. |
75 | configuring more nfsd threads will probably improve the performance | ||
76 | of the NFS workload. In the latter case, the sunrpc server layer is | ||
77 | already choosing not to wake idle nfsd threads because there are too | ||
78 | many nfsd threads which want to run but cannot, so configuring more | ||
79 | nfsd threads will make no difference whatsoever. The overloads-avoided | ||
80 | statistic (see below) can be used to distinguish these cases. | ||
81 | 75 | ||
82 | threads-woken | 76 | threads-woken |
83 | Counts how many times an idle nfsd thread is woken to try to | 77 | Counts how many times an idle nfsd thread is woken to try to |
@@ -88,36 +82,6 @@ threads-woken | |||
88 | thing. The ideal rate of change for this counter will be close | 82 | thing. The ideal rate of change for this counter will be close |
89 | to but less than the rate of change of the packets-arrived counter. | 83 | to but less than the rate of change of the packets-arrived counter. |
90 | 84 | ||
91 | overloads-avoided | ||
92 | Counts how many times the sunrpc server layer chose not to wake an | ||
93 | nfsd thread, despite the presence of idle nfsd threads, because | ||
94 | too many nfsd threads had been recently woken but could not get | ||
95 | enough CPU time to actually run. | ||
96 | |||
97 | This statistic counts a circumstance where the sunrpc layer | ||
98 | heuristically avoids overloading the CPU scheduler with too many | ||
99 | runnable nfsd threads. The ideal rate of change for this counter | ||
100 | is zero. Significant non-zero values indicate that the workload | ||
101 | is CPU limited. Usually this is associated with heavy CPU usage | ||
102 | on all the CPUs in the nfsd thread pool. | ||
103 | |||
104 | If a sustained large overloads-avoided rate is detected on a pool, | ||
105 | the top(1) utility should be used to check for the following | ||
106 | pattern of CPU usage on all the CPUs associated with the given | ||
107 | nfsd thread pool. | ||
108 | |||
109 | - %us ~= 0 (as you're *NOT* running applications on your NFS server) | ||
110 | |||
111 | - %wa ~= 0 | ||
112 | |||
113 | - %id ~= 0 | ||
114 | |||
115 | - %sy + %hi + %si ~= 100 | ||
116 | |||
117 | If this pattern is seen, configuring more nfsd threads will *not* | ||
118 | improve the performance of the workload. If this patten is not | ||
119 | seen, then something more subtle is wrong. | ||
120 | |||
121 | threads-timedout | 85 | threads-timedout |
122 | Counts how many times an nfsd thread triggered an idle timeout, | 86 | Counts how many times an nfsd thread triggered an idle timeout, |
123 | i.e. was not woken to handle any incoming network packets for | 87 | i.e. was not woken to handle any incoming network packets for |