NAME
lfs_cleanerd
- garbage collect a log-structured file system
SYNOPSIS
lfs_cleanerd
[-bcdfmqs]
[-i segment-number]
[-l load-threshhold]
[-n number-of-segments]
[-r report-frequency]
[-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
-
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.
- -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
-
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)
HISTORY
The
lfs_cleanerd
utility first appeared in
4.4BSD.