Updated: 2021/Apr/14


LFS_CLEANERD(8)             System Manager's Manual            LFS_CLEANERD(8)

NAME
     lfs_cleanerd - garbage collect a log-structured file system

SYNOPSIS
     lfs_cleanerd [-bcDdfmqs] [-i segment-number] [-J raw-device]
                  [-l load-threshhold] [-n number-of-segments]
                  [-r report-frequency] [-S semaphore-address] [-t timeout]
                  node

DESCRIPTION
     The lfs_cleanerd command starts a daemon process which garbage-collects
     the log-structured file system residing at the point named by node in the
     global file system namespace.  This command is normally executed by
     mount_lfs(8) when the log-structured file system is mounted.  The daemon
     will exit within a few minutes of when the file system it was cleaning is
     unmounted.

     Garbage collection on a log-structured file system is done by scanning
     the file system's segments for active, i.e. referenced, data and copying
     it to new segments.  When all of the active data in a given segment has
     been copied to a new segment that segment can be marked as empty, thus
     reclaiming the space taken by the inactive data which was in it.

     The following options are available:

     -b      Use bytes written, rather than segments read, when determining
             how many segments to clean at once.

     -c      Coalescing mode.  For each live inode, check to see if it has too
             many blocks that are not contiguous, and if it does, rewrite it.
             After a single pass through the filesystem the cleaner will exit.
             This option has been reported to corrupt file data; do not use
             it.

     -D      Stay in the foreground, do not become a daemon process.  Does not
             print additional debugging information (in contrast to -d).

     -d      Run in debug mode.  Do not become a daemon process, and print
             debugging information.  More -d s give more detailed debugging
             information.

     -f      Use filesystem idle time as the criterion for aggressive
             cleaning, instead of system load.

     -i segment-number
             Invalidate the segment with segment number segment-number.  This
             option is used by resize_lfs(8), and should not be specified on
             the command line.

     -J raw device
             Specify the raw device that the cleaner is to work against rather
             than trying to figure it out from the mount point.  This is
             mostly useful when the cleaner is compiled into rump_lfs(8) and
             the ATF test framework.

     -l load-threshhold
             Clean more aggressively when the system load is below the given
             threshhold.  The default threshhold is 0.2.

     -m      Does nothing.  This option is present for historical
             compatibility.

     -n number-of-segments
             Clean this number of segments at a time: that is, pass this many
             segments' blocks through a single call to lfs_markv, or, if -b
             was also given, pass this many segments' worth of blocks through
             a single call to lfs_markv.

     -q      Quit after cleaning once.

     -r report-frequency
             Give an efficiency report after every report-frequency times
             through the main loop.

     -S semaphore address
             When the cleaner code is compiled into rump_lfs(8) and the ATF
             frame work, this option allows for a synchronization semaphore to
             be specified.  This option is not available in the stand-alone
             lfs_cleanerd.

     -s      When cleaning the file system, send only a few blocks through
             lfs_markv at a time.  Don't use this option.

     -t timeout
             Poll the filesystem every timeout seconds, looking for
             opportunities to clean.  The default is 300, that is, five
             minutes.  Note that lfs_cleanerd will be automatically awakened
             when the filesystem is active, so it is not usually necessary to
             set timeout to a low value.

SEE ALSO
     lfs_bmapv(2), lfs_markv(2), lfs_segwait(2), mount_lfs(8), rump_lfs(8)

HISTORY
     The lfs_cleanerd utility first appeared in 4.4BSD.

NetBSD 9.99                     August 6, 2009                     NetBSD 9.99