Details
-
Bug
-
Resolution: Duplicate
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
While looking at at 47K strided read workload, I noticed that there were a lot of 1 page read RPCs, roughly half as many as the larger RPCs:
read write
pages per rpc rpcs % cum % | rpcs % cum %
1: 12 35 35 | 0 0 0
2: 0 0 35 | 0 0 0
4: 0 0 35 | 0 0 0
8: 0 0 35 | 0 0 0
16: 22 64 100 | 0 0 0
read write
rpcs in flight rpcs % cum % | rpcs % cum %
0: 0 0 0 | 0 0 0
1: 34 100 100 | 0 0 0
I dug in to this, and I eventually figured out that when a read is unaligned on both the first and last page, the length calculation used to determine the count of pages for readahead is incorrect. A 47K read is 12 pages in length, but when it is unaligned at start and end, the total page count is 13 pages.
The fix is pretty simple, and the 1 page RPCs disappear from the workload.
This should significantly increase performance for unaligned read workloads of this type. I'll try to get some benchmarks to include in the patch.
Attachments
Issue Links
- duplicates
-
LU-12644 correct fast read & strided readahead interaction
-
- Resolved
-
Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/35015/
Subject:
LU-12367llite: Fix page count for unaligned readsProject: fs/lustre-release
Branch: master
Current Patch Set:
Commit: d4a54de84c0554a21b215621b4df5fdd93e38f74