HomeFreeBSD

Some improvements to metaslabs eviction

Description

Some improvements to metaslabs eviction

  • Add old eviction for special and dedup metaslab classes. Those

vdevs may be potentially big and fragmented with large metaslabs,
while their asynchronous write pattern is not really different
from normal class. It seems an omission to not evict old metaslabs
from them.

  • If we have metaslab preload enabled, which means we are not too

low on memory, do not evict active metaslabs even if they are not
used for some time. Eviction of active metaslabs means we won't
be able to write anything until we load them, that may take some
time, that is straight opposite to metaslab preload goals. For
small systems the memory saving should be less important after
recent reduction in number of allocators and so open metaslabs.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #16214

Details

Provenance
mavAuthored on May 29 2024, 3:53 PM
GitHub <noreply@github.com>Committed on May 29 2024, 3:53 PM
Parents
rG02c5aa9b0928: Destroy ARC buffer in case of fill error
Branches
Unknown
Tags
Unknown