On 4/1/22 11:32 AM, Thiago Becker wrote:
Recent changes in the linux kernel caused NFS readahead to default to 128 from the previous default of 15 * rsize. This causes performance penalties to some read-heavy workloads, which can be fixed by tuning the readahead for that given mount. Specifically, the read troughput on a sec=krb5p mount drops by 50-75% when comparing the default readahead with a readahead of 15360. Previous discussions: https://lore.kernel.org/linux-nfs/20210803130717.2890565-1-trbecker@xxxxxxxxx/ I attempted to add a non-kernel option to mount.nfs, and it was rejected. https://lore.kernel.org/linux-nfs/20210811171402.947156-1-trbecker@xxxxxxxxx/ Attempted to add a mount option to the kernel, rejected as well. I had started a separate tool to set the readahead of BDIs, but the scope is specifically for NFS, so I would like to get the community feeling for having this in nfs-utils. This patch series introduces nfs-readahead-udev, a utility to automatically set NFS readahead when NFS is mounted. The utility is triggered by udev when a new BDI is added, returns to udev the value of the readahead that should be used. The tool currently supports setting read ahead per mountpoint, nfs major version, or by a global default value. v2: - explain the motivation v3: - adopt already available facilities - nfsrahead is now configured in nfs.conf v4: - retry getting the device if it fails - assorted fixes and improvements Thiago Becker (7): Create nfsrahead nfsrahead: configure udev nfsrahead: only set readahead for nfs devices. nfsrahead: add logging nfsrahead: get the information from the config file. nfsrahead: User documentation nfsrahead: retry getting the device if it fails. .gitignore | 2 + configure.ac | 1 + systemd/nfs.conf.man | 11 ++ tools/Makefile.am | 2 +- tools/nfsrahead/99-nfs.rules.in | 1 + tools/nfsrahead/Makefile.am | 16 +++ tools/nfsrahead/main.c | 183 ++++++++++++++++++++++++++++++++ tools/nfsrahead/nfsrahead.man | 72 +++++++++++++ 8 files changed, 287 insertions(+), 1 deletion(-) create mode 100644 tools/nfsrahead/99-nfs.rules.in create mode 100644 tools/nfsrahead/Makefile.am create mode 100644 tools/nfsrahead/main.c create mode 100644 tools/nfsrahead/nfsrahead.man
Committed... (tag nfs-utils-2-6-2-rc4) steved.