Multiple processes listing a large directory over nfs concurrently takes a very long time

Solution Verified - Updated -

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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In