Project

General

Profile

Actions

Bug #13093

open

ZFS should be more careful in low memory situations

Added by Joshua M. Clulow almost 2 years ago. Updated almost 2 years ago.

Status:
New
Priority:
Normal
Category:
zfs - Zettabyte File System
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

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

Related to illumos gate - Bug #13092: ZFS I/O pipeline should use the pageout_reserve poolClosedJoshua M. Clulow

Actions
Actions

Also available in: Atom PDF