initial commit, migrating from draft status
parent
183485623c
commit
3f94b80204
|
@ -0,0 +1,33 @@
|
||||||
|
### Async Writes
|
||||||
|
|
||||||
|
The number of concurrent operations issued for the async write I/O class
|
||||||
|
follows a piece-wise linear function defined by a few adjustable points.
|
||||||
|
|
||||||
|
```
|
||||||
|
| o---------| <-- zfs_vdev_async_write_max_active
|
||||||
|
^ | /^ |
|
||||||
|
| | / | |
|
||||||
|
active | / | |
|
||||||
|
I/O | / | |
|
||||||
|
count | / | |
|
||||||
|
| / | |
|
||||||
|
|-------o | | <-- zfs_vdev_async_write_min_active
|
||||||
|
0|_______^______|_________|
|
||||||
|
0% | | 100% of zfs_dirty_data_max
|
||||||
|
| |
|
||||||
|
| `-- zfs_vdev_async_write_active_max_dirty_percent
|
||||||
|
`--------- zfs_vdev_async_write_active_min_dirty_percent
|
||||||
|
```
|
||||||
|
|
||||||
|
Until the amount of dirty data exceeds a minimum percentage of the dirty
|
||||||
|
data allowed in the pool, the I/O scheduler will limit the number of
|
||||||
|
concurrent operations to the minimum. As that threshold is crossed, the
|
||||||
|
number of concurrent operations issued increases linearly to the maximum at
|
||||||
|
the specified maximum percentage of the dirty data allowed in the pool.
|
||||||
|
|
||||||
|
Ideally, the amount of dirty data on a busy pool will stay in the sloped
|
||||||
|
part of the function between zfs_vdev_async_write_active_min_dirty_percent
|
||||||
|
and zfs_vdev_async_write_active_max_dirty_percent. If it exceeds the
|
||||||
|
maximum percentage, this indicates that the rate of incoming data is
|
||||||
|
greater than the rate that the backend storage can handle. In this case, we
|
||||||
|
must further throttle incoming writes, as described in the next section.
|
Loading…
Reference in New Issue