Readdir ls -lU graphs

From Linux NFS

(Difference between revisions)
Jump to: navigation, search
(NFS v3)
 
(7 intermediate revisions not shown)
Line 8: Line 8:
== Real ==
== Real ==
 +
=== 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.
 +
 +
=== 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 ==
 +
=== NFS v3 ===
* [[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 ===
* [[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 ===
* [[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 ===
* [[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

  • V3 ls lU noplus real.jpg
    • 2.6.36 kernels take longer than 2.6.38 kernels.
  • 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.

NFS v4

  • V4 ls lU noplus real.jpg
    • 2.6.36 kernels seem to take more time than 2.6.38 kernels.
  • V4 ls lU plus real.jpg
    • Using readdir plus on large directories helps the command finish faster.

Sys

NFS v3

  • V3 ls lU noplus sys.jpg
  • V3 ls lU plus sys.jpg
    • Using readdir plus reduces the kernel time needed for the command to complete

NFS v4

  • V4 ls lU noplus sys.jpg
  • V4 ls lU plus sys.jpg
    • Using readdir plus on 2.6.38 kernels decreases time spent in the kernel

RPC ops

NFS v3

  • V3 ls lU noplus rpc.jpg
    • Kernels issue the same number of RPC operations in this case
  • V3 ls lU plus rpc.jpg
    • Falling back to readdir on large directories can lead to thousands of extra RPC operations

NFS v4

  • V4 ls lU noplus rpc.jpg
  • V4 ls lU plus rpc.jpg
    • Using readdir plus results in fewer RPC operations
Personal tools