Directory listing on NFS mount takes excessive time

  • 7021345
  • 08-Sep-2017
  • 08-Sep-2017

Environment

SUSE Linux Enterprise Server 11 Service Pack 2 (SLES 11 SP2)
SUSE Linux Enterprise Server 11 Service Pack 3 (SLES 11 SP3)
SUSE Linux Enterprise Server 11 Service Pack 4 (SLES 11 SP4)

Situation

When attempting a directory list on an NFS mounted file system, the directory list may take an excessive amount of time to complete and be displayed.  This is mainly seen on large directories, where tens of thousands of entries (or more) are present.  Large directories are expected to take more time to complete;  however, the time taken is this case is disproportionate and may grow exponentially, relative to directory size.

Resolution

There are conditions which can cause the NFS readdir or readdirplus process start over.  This is not likely to happen  on small directory listings which can be completed quickly, but it may happen repeatedly in very large directories, especially if other processes are modifying contents of the directory in question.
 
A fix to address this situation was made in upstream Linux kernel 3.11.  However, SLES 11 does not go beyond kernel 3.0.11.  The fix is known as:
 
Commit: 07b5ce8ef2d8 ("NFS: Make nfs_readdir revalidate less often")
 
For SLES 11 SP4, this fix has been backported and is available in maintenance kernel 3.0.101-108.7.
 
SLES 12 already contains the newer kernel and fix.
 
Because SLES 11 SP3 (and older) are no longer in general maintenance, public updates containing this fix are not planned.  However, for those customers with Long Term ServicePack Support (LTSS) contracts, the older code can still be maintained and made available.
 
The same fix is currently being tested in a SLES 11 SP3 LTSS kernel, and is tentatively expected to become available in the LTSS update channel.  However, a target date for completion and release is not known.  In the meantime, LTSS customers who need this fix can open a Service Request with SUSE technical support, to obtain a PTF.  The relevant bug number is 1048232.  A tcpdump of the NFS client machine performing the directory list will be needed, to verify the issue.

Feedback service temporarily unavailable. For content questions or problems, please contact Support.