Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
9223372036854775807
Description
There are several efforts here and there which try to improve the performances of single
thread read performances.
this ticket is opened to track a simple enough patch to improve the performances as much
as possible.
Here is whole history:
Currently, for sequential read IO, We grow up window
size very quickly, and once we cached @max_readahead_per_file
pages. For following command:
dd if=/mnt/lustre/file of=/dev/null bs=1M
We will do something like following:
...
64M bytes cached.
fast io for 16M bytes
readahead extra 16M to fill up window.
fast io for 16M bytes
readahead extra 16M to fill up window.
....
In this way, we could only use fast IO for 16M bytes and
then fall through non-fast IO mode. this is also reason
that why increasing @max_readahead_per_file don't give us
performances up, since this value only changes how much
memory we cached in memory, during my testing whatever
I changed the value, i could only get 2GB/s for single thread
read.
Actually, we could do this better, if we have used
more than 16M bytes readahead pages, submit another readahead
requests in the background. and ideally, we could always
use fast IO..I did a quick test with fake-IO on my limited
PC server:
Without patch VS Patched:
~2.0GB/S vs ~3.0 GB/s
So we could gain at least 50% performance up, i supposed
We could get more maybe more than 4GB/S with patch.
Attachments
Issue Links
- is duplicated by
-
LU-10557 Should form read RPCs according to read syscal input when readahead is disabled
- Resolved
- is related to
-
LU-13386 allow over reservation to cover current read
- Resolved
-
LU-11526 Support 64MB I/O RPC
- Resolved
-
LU-13258 Bind linux workqueues to specific core
- Resolved
- is related to
-
LU-8964 use parallel I/O to improve performance on machines with slow single thread performance
- Resolved
-
LU-8709 parallel asynchronous readahead
- Resolved
-
LU-12518 improve Lustre unaligned IO read performances
- Resolved