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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content