Tweak wording in my I/O Schedule report

This commit is contained in:
Warner Losh 2016-04-20 03:47:47 +00:00
parent f266622398
commit 877a9a46a8
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48681

View file

@ -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>