Multiple processes listing a large directory over nfs concurrently takes a very long time
Issue
- When multiple processes are listing the contents of a directory simultaneously, calls to getdents() can take a very long time. This occurs even if the contents of the directory are unchanging.
- As the number of directory entries increases, and as the number of processes listing the directory concurrently increases, the time required to list a directory can become huge.
- This issue is different than https://access.redhat.com/solutions/2249321 due to the fact that the directory being listed is not being modified at the same time it is being listed.
Environment
- Red Hat Enterprise Linux 7
- kernel at least 3.10.0-229.el7 and before 3.10.0-693.el7
- Red Hat Enterprise Linux 6
- kernel at least 2.6.32-573.el6 and before 2.6.32-696.el6
- Upstream kernels
- seen on 4.8.0-rc2+
- nfs
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.