Whamcloud - gitweb
LU-12518 llite: support page unaligned stride readahead 37/35437/12
authorWang Shilong <wshilong@ddn.com>
Mon, 19 Aug 2019 06:57:29 +0000 (14:57 +0800)
committerOleg Drokin <green@whamcloud.com>
Fri, 6 Dec 2019 01:05:24 +0000 (01:05 +0000)
commit91d2645515087df3f912b285419cfff73d9fca9e
tree0228df7c1bb88bb6074223721c82f5fe08d756d6
parent6722a95fd0416fa6f24140130ea8a1e0df5f1542
LU-12518 llite: support page unaligned stride readahead

Currently, Lustre works well for aligned IO, but performance
is pretty bad for unaligned IO stride read, we might need
take some efforts to improve this situation.

One of the main problem with current stride read is it is
based on Page Index, so if we hit unaligned page case,
stride Read detection will not work well. To support unaligned
page stride read, we might change page index to bytes offset
thus stride read pattern detection work well and we won't hit
many small pages RPC and readahead window reset. At the same
time, we shall keep as much as performances for existed cases
and make sure there won't be obvious regressions for
aligned-stride and sequential read.

Benchmark numbers:
iozone -w -c -i 5 -t1 -j 2 -s 1G -r 43k -F /mnt/lustre/data

Patched                 Unpatched
1386630.75 kB/sec       152002.50 kB/sec

At least performance bumped up more than ~800%.

Benchmarked with IOR from ihara:
        FPP Read(MB/sec)        SSF Read(MB/sec)
Unpatched 44,636                7,731

Patched   44,318                20,745

Got 250% performances up for ior_hard_read workload.

Change-Id: I791745f957af84a6c790c52fbe9f5fed3fd30c77
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-on: https://review.whamcloud.com/35437
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Li Xi <lixi@ddn.com>
lustre/llite/file.c
lustre/llite/llite_internal.h
lustre/llite/rw.c