Readdir NFSv4 No Readdir Plus

From Linux NFS

Revision as of 19:26, 4 April 2011 by Amschuma (Talk | contribs)
Jump to: navigation, search
    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

100 Files

time ls -f --color=none /nfs/test/dir.100 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.013s | 0m0.057s | 0m0.082s | 0m0.022s | 0m0.014s
  user  | 0m0.000s | 0m0.003s | 0m0.003s | 0m0.003s | 0m0.000s
  sys   | 0m0.007s | 0m0.007s | 0m0.060s | 0m0.013s | 0m0.010s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |    2     |    2     |    2     |    2     |    2
readdir |    2     |    2     |    2     |    2     |    2
time ls -lU --color=none /nfs/test/dir.100 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.040s | 0m0.136s | 0m0.057s | 0m0.036s | 0m0.035s
  user  | 0m0.003s | 0m0.010s | 0m0.000s | 0m0.007s | 0m0.007s
  sys   | 0m0.010s | 0m0.020s | 0m0.017s | 0m0.027s | 0m0.027s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |   102    |   102    |   102    |   102    |   102
readdir |    2     |    2     |    2     |    2     |    2
time ls -U --color=none /nfs/test/dir.100 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.077s | 0m0.014s | 0m0.023s | 0m0.041s | 0m0.013s
  user  | 0m0.000s | 0m0.003s | 0m0.000s | 0m0.003s | 0m0.007s
  sys   | 0m0.007s | 0m0.007s | 0m0.010s | 0m0.033s | 0m0.007s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |    2     |    2     |    2     |    2     |    2
readdir |    2     |    2     |    2     |    2     |    2
time rm -rf /nfs/test/dir.100 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.037s | 0m0.037s | 0m0.042s | 0m0.751s | 0m0.042s
  user  | 0m0.000s | 0m0.000s | 0m0.003s | 0m0.007s | 0m0.000s
  sys   | 0m0.013s | 0m0.017s | 0m0.027s | 0m0.010s | 0m0.027s
access  |    11    |    12    |    13    |    11    |    12
getattr |    1     |    1     |    1     |    1     |    1
lookup  |   102    |   102    |   102    |   102    |   102
remove  |   101    |   101    |   101    |   101    |   101
statfs  |    1     |    1     |    1     |    1     |    1
readdir |    2     |    2     |    2     |    2     |    2


1,000 Files

time ls -f --color=none /nfs/test/dir.1000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.016s | 0m0.056s | 0m0.041s | 0m0.022s | 0m0.022s
  user  | 0m0.003s | 0m0.000s | 0m0.003s | 0m0.003s | 0m0.000s
  sys   | 0m0.003s | 0m0.020s | 0m0.003s | 0m0.013s | 0m0.013s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |    2     |    2     |    2     |    2     |    2
readdir |    13    |    13    |    20    |    20    |    20
time ls -lU --color=none /nfs/test/dir.1000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.163s | 0m0.237s | 0m0.176s | 0m0.178s | 0m0.174s
  user  | 0m0.017s | 0m0.010s | 0m0.010s | 0m0.013s | 0m0.007s
  sys   | 0m0.060s | 0m0.167s | 0m0.057s | 0m0.113s | 0m0.117s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |   1002   |   1002   |   1002   |   1002   |   1002
readdir |    12    |    13    |    20    |    20    |    20
time ls -U --color=none /nfs/test/dir.1000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.069s | 0m0.033s | 0m0.030s | 0m0.022s | 0m0.023s
  user  | 0m0.000s | 0m0.003s | 0m0.000s | 0m0.000s | 0m0.003s
  sys   | 0m0.007s | 0m0.023s | 0m0.010s | 0m0.017s | 0m0.013s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |    2     |    2     |    2     |    2     |    2
readdir |    13    |    13    |    20    |    20    |    20
time rm -rf /nfs/test/dir.1000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.283s | 0m0.277s | 0m0.296s | 0m0.291s | 0m0.283s
  user  | 0m0.003s | 0m0.010s | 0m0.007s | 0m0.010s | 0m0.003s
  sys   | 0m0.120s | 0m0.097s | 0m0.107s | 0m0.087s | 0m0.090s
access  |    83    |    82    |    87    |    85    |    80
getattr |    1     |    1     |    1     |    1     |    1
lookup  |   1002   |   1002   |   1002   |   1002   |   1002
remove  |   1001   |   1001   |   1001   |   1001   |   1001
statfs  |    1     |    1     |    1     |    1     |    1
readdir |    13    |    13    |    20    |    20    |    20


10,000 Files

time ls -f --color=none /nfs/test/dir.10000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.232s | 0m0.318s | 0m0.160s | 0m0.148s | 0m0.155s
  user  | 0m0.007s | 0m0.000s | 0m0.003s | 0m0.003s | 0m0.003s
  sys   | 0m0.013s | 0m0.027s | 0m0.067s | 0m0.087s | 0m0.080s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |    2     |    2     |    2     |    2     |    2
readdir |   139    |   139    |   197    |   197    |   197
time ls -lU --color=none /nfs/test/dir.10000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m2.059s | 0m1.848s | 0m1.513s | 0m1.463s | 0m1.359s
  user  | 0m0.040s | 0m0.060s | 0m0.047s | 0m0.070s | 0m0.067s
  sys   | 0m0.657s | 0m0.823s | 0m0.550s | 0m0.723s | 0m0.583s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |  10002   |  10002   |  10002   |  10002   |  10002
readdir |   139    |   139    |   197    |   197    |   197
time ls -U --color=none /nfs/test/dir.10000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m0.298s | 0m0.119s | 0m0.116s | 0m0.145s | 0m0.154s
  user  | 0m0.007s | 0m0.000s | 0m0.007s | 0m0.003s | 0m0.003s
  sys   | 0m0.017s | 0m0.053s | 0m0.013s | 0m0.110s | 0m0.117s
 access |    3     |    3     |    3     |    3     |    3
getattr |    1     |    1     |    1     |    1     |    1
 lookup |    2     |    2     |    2     |    2     |    2
readdir |   139    |   139    |   197    |   197    |   197
time rm -rf /nfs/test/dir.10000 > ls.txt
 kernel |    36    |  36NORC  |    38    |   38RC   |   38NB
--------+----------+----------+----------+----------+----------
  real  | 0m2.721s | 0m2.701s | 0m2.680s | 0m2.755s | 0m2.744s
  user  | 0m0.017s | 0m0.033s | 0m0.017s | 0m0.033s | 0m0.027s
  sys   | 0m0.833s | 0m0.837s | 0m0.843s | 0m0.850s | 0m0.927s
access  |   800    |   794    |   781    |   800    |   793
getattr |    1     |    1     |    1     |    1     |    1
lookup  |  10002   |  10002   |  10002   |  10002   |  10002
remove  |  10001   |  10001   |  10001   |  10001   |  10001
statfs  |    1     |    1     |    1     |    1     |    1
readdir |   139    |   139    |   197    |   197    |   197


100,000 Files

time ls -f --color=none /nfs/test/dir.100000 > ls.txt
 kernel |    36     |  36NORC   |    38     |   38RC    |   38NB
--------+-----------+-----------+-----------+-----------+----------
  real  | 0m2.923s  | 0m3.339s  | 0m1.085s  | 0m1.040s  | 0m1.497s
  user  | 0m0.047s  | 0m0.030s  | 0m0.043s  | 0m0.037s  | 0m0.030s
  sys   | 0m0.230s  | 0m0.263s  | 0m0.217s  | 0m0.263s  | 0m0.227s
 access |    3      |    3      |    3      |    3      |    3
getattr |    1      |    1      |    1      |    1      |    1
 lookup |    2      |    2      |    2      |    2      |    2
readdir |   1389    |   1389    |   1961    |   1961    |   1961
time ls -lU --color=none /nfs/test/dir.100000 > ls.txt
 kernel |    36     |  36NORC   |    38     |   38RC    |   38NB
--------+-----------+-----------+-----------+-----------+----------
  real  | 0m16.173s | 0m19.797s | 0m14.398s | 0m13.470s | 0m13.518s
  user  | 0m00.523s | 0m00.760s | 0m00.510s | 0m00.560s | 0m00.550s
  sys   | 0m06.670s | 0m08.053s | 0m05.923s | 0m05.413s | 0m05.340s
 access |     3     |     3     |     3     |     3     |     3
getattr |     1     |     1     |     1     |     1     |     1
 lookup |   100002  |   100002  |   100002  |   100002  |   100002
readdir |    1389   |    1389   |    1961   |    1961   |    1961
time ls -U --color=none /nfs/test/dir.100000 > ls.txt
 kernel |    36     |  36NORC   |    38     |   38RC    |   38NB
--------+-----------+-----------+-----------+-----------+----------
  real  | 0m3.585s  | 0m1.313s  | 0m0.738s  | 0m1.256s  | 0m0.806s
  user  | 0m0.033s  | 0m0.037s  | 0m0.030s  | 0m0.037s  | 0m0.033s
  sys   | 0m0.240s  | 0m0.313s  | 0m0.200s  | 0m0.290s  | 0m0.263s
 access |    3      |    3      |    3      |    3      |    3
getattr |    1      |    1      |    1      |    1      |    1
 lookup |    2      |    2      |    2      |    2      |    2
readdir |   1389    |   1389    |   1961    |   1961    |   1961
time rm -rf /nfs/test/dir.100000 > ls.txt
 kernel |    36     |  36NORC   |    38     |   38RC    |   38NB
--------+-----------+-----------+-----------+-----------+----------
  real  | 0m29.988s | 0m30.379s | 0m29.828s | 0m29.804s | 0m30.188s
  user  | 0m00.227s | 0m00.233s | 0m00.173s | 0m00.243s | 0m00.177s
  sys   | 0m08.249s | 0m08.113s | 0m08.499s | 0m09.019s | 0m08.649s
access  |    7833   |    7794   |    7903   |    7945   |    7968
getattr |     1     |     1     |     1     |     1     |     1
lookup  |   100002  |   100002  |   100002  |   100002  |   100002
remove  |   100001  |   100001  |   100001  |   100001  |   100001
statfs  |     2     |     2     |     2     |     2     |     2
readdir |    1389   |    1389   |    1961   |    1961   |    1961


1,000,000 Files

time ls -f --color=none /nfs/test/dir.1000000 > ls.txt
 kernel |     36     |   36NORC   |     38     |    38RC    |    38NB
--------+------------+------------+------------+------------+-----------
  real  | 1m13.126s  | 1m44.799s  |            |            | 0m17.438s
  user  | 0m00.413s  | 0m00.323s  |            |            | 0m00.013s
  sys   | 0m13.022s  | 0m13.666s  |  Looping   |  Looping   | 0m00.067s
 access |     3      |     3      |  readdir   |  readdir   |     3
getattr |     2      |     3      |    bug     |    bug     |     1
 lookup |     2      |     2      |            |            |     2
readdir |   13889    |   13889    |            |            |    646
                                                              Readdir loop
                                                                detected
time ls -lU --color=none /nfs/test/dir.1000000 > ls.txt
 kernel |     36     |   36NORC   |     38     |    38RC    |    38NB
--------+------------+------------+------------+------------+-----------
  real  | 4m53.270s  | 3m28.650s  | 0m29.409s  |            | 0m4.531s
  user  | 0m06.476s  | 0m06.246s  | 0m03.166s  |            | 0m0.167s
  sys   | 1m16.152s  | 1m20.161s  | 0m18.369s  | ls: memory | 0m1.850s
 access |     18     |     12     |     3      | exhausted  |    3
getattr |     1      |     2      |     4      |            |    1
 lookup |  1000002   |  1000002   |   23946    |            |  32946
readdir |   13889    |   13889    |    6600    |            |   646
                                  Out of memory               Readdir loop
                                                                detected
time ls -U --color=none /nfs/test/dir.1000000 > ls.txt
 kernel |     36     |   36NORC   |     38     |    38RC    |    38NB
--------+------------+------------+------------+------------+-----------
  real  | 2m27.713s  | 0m19.563s  |            |            | 0m0.433s
  user  | 0m00.290s  | 0m00.333s  |            |            | 0m0.017s
  sys   | 0m13.192s  | 0m13.859s  |  Looping   |  Looping   | 0m0.163s
 access |     3      |     3      |  readdir   |  readdir   |    3
getattr |     3      |     1      |    bug     |    bug     |    1
 lookup |     2      |     2      |            |            |    2
readdir |   13889    |   13889    |            |            |   646
                                                              Readdir loop
                                                                detected
time rm -rf /nfs/test/dir.1000000 > ls.txt
 kernel |     36     |   36NORC   |     38     |    38RC    |    38NB
--------+------------+------------+------------+------------+-----------
  real  | 35m48.426s | 34m05.507s | 0m17.782s  | 0m11.633s  | 1m0.290s
  user  | 00m05.040s | 00m03.333s | 0m00.973s  | 0m01.110s  | 0m0.057s
  sys   | 04m18.433s | 03m55.751s | 0m03.906s  | 0m02.696s  | 0m3.053s
access  |    112164  |    107082  |     3      |     3      |   2638
getattr |      3     |      2     |     1      |     1      |    1
lookup  |   1000004  |   1000004  |     2      |     2      |  32946
remove  |   1000001  |   1000001  |     0      |     0      |  32945
statfs  |      2     |      2     |     0      |     0      |    2
readdir |    13889   |    13889   |    1084    |    1556    |   646
                                  Out of memory Out of memory Readdir loop
                                                                detected

Personal tools