Tweak wording in my I/O Schedule report
This commit is contained in:
parent
f266622398
commit
877a9a46a8
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48681
1 changed files with 31 additions and 13 deletions
|
@ -2548,23 +2548,41 @@
|
|||
<body>
|
||||
<p>An enhanced CAM I/O scheduler has been committed to the tree.
|
||||
By default, this scheduler implements the old behavior.
|
||||
However, a more adaptive scheduler can be enabled. The more
|
||||
adaptive scheduler allows pacing of different types of I/O to
|
||||
allow the workload-preferred I/O to experience maximum
|
||||
performance. By measuring device response time at the lowest
|
||||
levels, many artifacts of software queueing can be eliminated
|
||||
and better performance can be achieved. In addition, Queued
|
||||
Trims are now supported for SATA devices that support them.
|
||||
Details about the new scheduler are available in the
|
||||
In addition, an advanced adaptive scheduler is available.
|
||||
Along with the scheduler, SATA disks can now used Queued Trims
|
||||
with devices that support them. Details about the new
|
||||
scheduler are available in the
|
||||
<a href="https://people.freebsd.org/~imp/bsdcan2015/iosched-v3.pdf">I/O Scheduling in FreeBSD's CAM Subsystem article (PDF)</a>
|
||||
or from
|
||||
<a href="https://www.youtube.com/watch?v=3WqOLolj5EU">the BSDCan 2015 talk</a>.</p>
|
||||
|
||||
<p>In essence, this I/O scheduler allows the user to choose
|
||||
improved read performance by trading off some write
|
||||
performance. Or, if SSDs cannot garbage collect fast enough
|
||||
to keep up with writes, to improve write performance at the
|
||||
cost of some read performance.</p>
|
||||
<p>In addition to the default scheduler, an advanced, adaptive I/O
|
||||
scheduler is included. It is disabled by default, but can be enabled
|
||||
with options CAM_ADAPTIVE_IOSCHED in your kernel config file. This
|
||||
scheduler lets you favor reads over writes (or vice versa), control
|
||||
the iops, bandwidth or concurrent operations (read, write, trim), and
|
||||
lets you select static or dynamic control of these operations. In
|
||||
addition, a number of statistics are collected for drive operations
|
||||
that are published via sysctl. One advanced use for the adaptive I/O
|
||||
scheduler is to compensate for deficiencies in some consumer-grade
|
||||
SSDs. Some SSDs exhibit a performance cliff if you write too much data
|
||||
to them too quickly due to internal garbage collection. Without the
|
||||
I/O scheduler, read and write performance drop substantially once
|
||||
garbage collection kicks in. The adaptive I/O scheduler can be
|
||||
configured to monitor read latency. As read latency climbs, the I/O
|
||||
schedulers reduces the allowed write throughput, within limits, to
|
||||
attempt to maximize read performance. A simple use of the adaptive I/O
|
||||
scheduler would be to limit write bandwidth, iops or concurrent
|
||||
operations statically.</p>
|
||||
|
||||
<p>Future work on the I/O scheduler will be coupled with
|
||||
improvements to the upper layers. The upper layers will be
|
||||
enhanced to communicate how urgent I/O requests are. The I/O
|
||||
scheduler will communicate how full the I/O queues are to the
|
||||
upper layers so less urgent I/O can be submitted to the lower
|
||||
layers as quickly as possible without overwhelming the lower
|
||||
layers or starving other devices of requests.</p>
|
||||
|
||||
</body>
|
||||
|
||||
<sponsor>Netflix</sponsor>
|
||||
|
|
Loading…
Reference in a new issue