Actions
Bug #13093
openZFS should be more careful in low memory situations
Start date:
Due date:
% Done:
0%
Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:
Description
Once more of ZFS is able to correctly use the pageout reserve pool (see #13092), we should ensure that it takes that responsibility seriously. There are a number of cases today where ZFS will perform rather a lot of sleeping allocations for tasks that seem at best optional, if optimal, to include in the I/O pipeline. Most of these are in the name of better performance or storage efficiency -- but once you hit memory deadlock the performance or efficiency seem less relevant.
When freemem
is under minfree
, we should skip at least these optional tasks in order to try and avoid sleeping allocations while helping pageout()
evict pages to disk:
- prefetching in
dmu_zfetch()
- aggregating I/Os into larger I/Os in
vdev_queue_aggregate()
- compressing blocks in
zio_write_compress()
- allocating book keeping objects for the DVA throttle in
zio_dva_throttle()
Related issues
Updated by Joshua M. Clulow about 3 years ago
- Related to Bug #13092: ZFS I/O pipeline should use the pageout_reserve pool added
Actions