summaryrefslogtreecommitdiff
path: root/certs
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2024-07-01 12:50:48 +0200
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2024-07-08 13:47:27 -0400
commit2f1f31042ef07719a0d5cb4784b8a32d20c13110 (patch)
tree7a7fe9889f6136d8a61c991b0f9c1ee4afa0841c /certs
parentf8a3955083f5cc5d62257c6e1103f89f566d3a87 (diff)
nfs: Block on write congestion
Commit 6df25e58532b ("nfs: remove reliance on bdi congestion") introduced NFS-private solution for limiting number of writes outstanding against a particular server. Unlike previous bdi congestion this algorithm actually works and limits number of outstanding writeback pages to nfs_congestion_kb which scales with amount of client's memory and is capped at 256 MB. As a result some workloads such as random buffered writes over NFS got slower (from ~170 MB/s to ~126 MB/s). The fio command to reproduce is: fio --direct=0 --ioengine=sync --thread --invalidate=1 --group_reporting=1 --runtime=300 --fallocate=posix --ramp_time=10 --new_group --rw=randwrite --size=64256m --numjobs=4 --bs=4k --fsync_on_close=1 --end_fsync=1 This happens because the client sends ~256 MB worth of dirty pages to the server and any further background writeback request is ignored until the number of writeback pages gets below the threshold of 192 MB. By the time this happens and clients decides to trigger another round of writeback, the server often has no pages to write and the disk is idle. To fix this problem and make the client react faster to eased congestion of the server by blocking waiting for congestion to resolve instead of aborting writeback. This improves the random 4k buffered write throughput to 184 MB/s. Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'certs')
0 files changed, 0 insertions, 0 deletions