lfs_cleanerd
—
garbage collect a log-structured file system
lfs_cleanerd |
[-bcDdfmqs ] [-i
segment-number] [-l
load-threshhold] [-n
number-of-segments] [-r
report-frequency] [-t
timeout] node |
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.
-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.
The lfs_cleanerd
utility first appeared in
4.4BSD.