Readdir ls -lU graphs
From Linux NFS
(Difference between revisions)
(→NFS v3) |
(→NFS v3) |
||
(5 intermediate revisions not shown) | |||
Line 10: | Line 10: | ||
=== NFS v3 === | === NFS v3 === | ||
* [[File:v3_ls_lU_noplus_real.jpg]] | * [[File:v3_ls_lU_noplus_real.jpg]] | ||
+ | ** 2.6.36 kernels take longer than 2.6.38 kernels. | ||
* [[File:v3_ls_lU_plus_real.jpg]] | * [[File:v3_ls_lU_plus_real.jpg]] | ||
** Falling back to readdir operations for large directories makes this command take longer. Removing the readdir plus cap from 2.6.36 improves performance, but doesn't match 2.6.38 kernels. Adding a readdir plus cap to 2.6.38 doubles the time needed for this command to complete. | ** Falling back to readdir operations for large directories makes this command take longer. Removing the readdir plus cap from 2.6.36 improves performance, but doesn't match 2.6.38 kernels. Adding a readdir plus cap to 2.6.38 doubles the time needed for this command to complete. | ||
Line 15: | Line 16: | ||
=== NFS v4 === | === NFS v4 === | ||
* [[File:v4_ls_lU_noplus_real.jpg]] | * [[File:v4_ls_lU_noplus_real.jpg]] | ||
+ | ** 2.6.36 kernels seem to take more time than 2.6.38 kernels. | ||
* [[File:v4_ls_lU_plus_real.jpg]] | * [[File:v4_ls_lU_plus_real.jpg]] | ||
+ | ** Using readdir plus on large directories helps the command finish faster. | ||
== Sys == | == Sys == | ||
Line 21: | Line 24: | ||
* [[File:v3_ls_lU_noplus_sys.jpg]] | * [[File:v3_ls_lU_noplus_sys.jpg]] | ||
* [[File:v3_ls_lU_plus_sys.jpg]] | * [[File:v3_ls_lU_plus_sys.jpg]] | ||
+ | ** Using readdir plus reduces the kernel time needed for the command to complete | ||
+ | |||
=== NFS v4 === | === NFS v4 === | ||
* [[File:v4_ls_lU_noplus_sys.jpg]] | * [[File:v4_ls_lU_noplus_sys.jpg]] | ||
* [[File:v4_ls_lU_plus_sys.jpg]] | * [[File:v4_ls_lU_plus_sys.jpg]] | ||
+ | ** Using readdir plus on 2.6.38 kernels decreases time spent in the kernel | ||
== RPC ops == | == RPC ops == | ||
=== NFS v3 === | === NFS v3 === | ||
* [[File:v3_ls_lU_noplus_rpc.jpg]] | * [[File:v3_ls_lU_noplus_rpc.jpg]] | ||
+ | ** Kernels issue the same number of RPC operations in this case | ||
* [[File:v3_ls_lU_plus_rpc.jpg]] | * [[File:v3_ls_lU_plus_rpc.jpg]] | ||
+ | ** Falling back to readdir on large directories can lead to thousands of extra RPC operations | ||
+ | |||
=== NFS v4 === | === NFS v4 === | ||
* [[File:v4_ls_lU_noplus_rpc.jpg]] | * [[File:v4_ls_lU_noplus_rpc.jpg]] | ||
* [[File:v4_ls_lU_plus_rpc.jpg]] | * [[File:v4_ls_lU_plus_rpc.jpg]] | ||
+ | ** Using readdir plus results in fewer RPC operations |
Latest revision as of 19:25, 7 April 2011
36: Linux 2.6.36 36NORC: Linux 2.6.36 (without readdir cap) 38: Linux 2.6.38 38RC: Linux 2.6.38 (with readdir cap added back) 38NB: Linux 2.6.38 (with Neil Brown's patch and loop detection)
Contents |
Real
NFS v3
-
- 2.6.36 kernels take longer than 2.6.38 kernels.
-
- Falling back to readdir operations for large directories makes this command take longer. Removing the readdir plus cap from 2.6.36 improves performance, but doesn't match 2.6.38 kernels. Adding a readdir plus cap to 2.6.38 doubles the time needed for this command to complete.
NFS v4
-
- 2.6.36 kernels seem to take more time than 2.6.38 kernels.
-
- Using readdir plus on large directories helps the command finish faster.
Sys
NFS v3
NFS v4
RPC ops
NFS v3
-
- Kernels issue the same number of RPC operations in this case
-
- Falling back to readdir on large directories can lead to thousands of extra RPC operations