Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
9223372036854775807
Description
Add DIO splitting tunables
The new faster DIO path is great, but benefit is only seen
if I/O is split to multiple RPCs. Currently, this only
happens if I/O size is > RPC size or if I/O crosses a
stripe boundary.
This requirement for splitting means that there is an
inherent conflict between the desire to do large RPCs and
doing single stream I/O at high speed.
This patch adds a pair of tunables, turning on some I/O
splitting by default while allowing users to control the
degree.
DIO parallelism, at the llite layer, specifying how many
chunks we should try to split a DIO In to
Minimum preferred I/O size, at the OSC layer, specifying
the minimum size to which we should split I/O.
Parallelism is a global control of how much splitting is
desired for best performance, the overall preference
between maximum RPC size and maximum single stream
performance.
The OSC level control is because some OSTs have
dramatically different performance with synchronous I/O,
so for a spinning OST, it may be desirable to enforce a
higher minimum I/O size (and so less parallelism), and the
reverse for a flash OST.
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>