HomeFreeBSD

Weigh dirty and clean pages differently when scanning the active queue.

Description

Weigh dirty and clean pages differently when scanning the active queue.

During a page shortage, clean pages can be reclaimed much more quickly than
dirty pages and thus provide more immediate utility to the system. Dirty
pages must first be laundered and therefore cannot contribute towards the
shortfall until after some I/O completes. This change modifies the active
queue scan to have clean pages count more heavily towards a shortage than
dirty pages. The inactive queue target is also scaled accordingly so that
we scan for dirty pages more aggressively than clean pages, causing the
laundry thread to start working sooner than it would otherwise, and
improving its ability to cluster pages.

The weight is set by the vm.act_scan_laundry_weight sysctl; clean and dirty
pages are given an equal weight by setting this sysctl to 1.

Reviewed by: alc

Details

Provenance
markjAuthored on
Reviewer
alc
Parents
rS292391: - Add some constants for the pagedaemon thread sleep intervals, and use
Branches
Unknown
Tags
Unknown