188 lines
6.4 KiB
Groff
188 lines
6.4 KiB
Groff
.\" -*- nroff -*-
|
|
.\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
|
|
.\" Written by David Howells (dhowells@redhat.com)
|
|
.\"
|
|
.\" This program is free software; you can redistribute it and/or
|
|
.\" modify it under the terms of the GNU General Public License
|
|
.\" as published by the Free Software Foundation; either version
|
|
.\" 2 of the License, or (at your option) any later version.
|
|
.\"
|
|
.TH CACHEFILESD.CONF 5 "14 November 2005" Linux "Cache Files Utilities"
|
|
.SH NAME
|
|
/etc/cachefilesd.conf \- Local file caching configuration file
|
|
.SH SYNOPSIS
|
|
.P
|
|
The configuration file for cachefilesd which can manage a persistent cache for
|
|
a variety of network filesystems using a set of files on an already mounted
|
|
filesystem as the data store.
|
|
.SH DESCRIPTION
|
|
.P
|
|
This configuration file can contain a number of commands. Each one should be
|
|
on a separate line. Blank lines and lines beginning with a '#' character are
|
|
considered to be comments and are discarded.
|
|
.P
|
|
The only mandatory command is:
|
|
.TP
|
|
.B dir <path>
|
|
This command specifies the directory containing the root of the cache. It may
|
|
only specified once per configuration file.
|
|
.P
|
|
All the other commands are optional:
|
|
.TP
|
|
.B secctx <label>
|
|
Specify an LSM security context as which the kernel will perform operations to
|
|
access the cache. The default is to use cachefilesd's security context. Files
|
|
will be created in the cache with the label of directory specified to the 'dir'
|
|
command.
|
|
.TP
|
|
.B brun <N>%
|
|
.TP
|
|
.B bcull <N>%
|
|
.TP
|
|
.B bstop <N>%
|
|
.TP
|
|
.B frun <N>%
|
|
.TP
|
|
.B fcull <N>%
|
|
.TP
|
|
.B fstop <N>%
|
|
These commands configure the culling limits. The defaults are 7% (run), 5%
|
|
(cull) and 1% (stop) respectively. See the section on cache culling for more
|
|
information.
|
|
.IP
|
|
The commands beginning with a 'b' are file space (block) limits, those
|
|
beginning with an 'f' are file count limits.
|
|
.TP
|
|
.B tag <name>
|
|
This command specifies a tag to FS-Cache to use in distinguishing multiple
|
|
caches. This is only required if more than one cache is going to be used. The
|
|
default is "CacheFiles".
|
|
.TP
|
|
.B culltable <log2size>
|
|
This command specifies the size of the tables holding the lists of cullable
|
|
objects in the cache. The bigger the number, the faster and more smoothly that
|
|
culling can proceed when there are many objects in the cache, but the more
|
|
memory will be consumed by cachefilesd.
|
|
.IP
|
|
The quantity is specified as log2 of the size actually required, for example 12
|
|
indicates a table of 4096 entries and 13 indicates 8192 entries. The
|
|
permissible values are between 12 and 20, the latter indicating 1048576
|
|
entries. The default is 12.
|
|
.TP
|
|
.B nocull
|
|
Disable culling. Culling and building up the cull table take up a certain
|
|
amount of a systems resources, which may be undesirable. Supplying this option
|
|
disables all culling activity. The cache will keep building up to the limits
|
|
set and won't be shrunk, except by the removal of out-dated cache files.
|
|
.TP
|
|
.B resume_thresholds <blocks> <files>
|
|
This command specifies the amount of blocks or files that the kernel should let
|
|
go of before the daemon should resume from culling table scan suspension.
|
|
.IP
|
|
Scanning to refill the cull table is suspended when all the objects in a cache
|
|
are pinned by a live network filesystem in the kernel and there's nothing to
|
|
cull.
|
|
.IP
|
|
Either value can be "-" to indicate that this threshold should be ignored.
|
|
.TP
|
|
.B debug <mask>
|
|
This command specifies a numeric bitmask to control debugging in the kernel
|
|
module. The default is zero (all off). The following values can be OR'd into
|
|
the mask to collect various information:
|
|
.RS
|
|
.TP
|
|
.B 1
|
|
Turn on trace of function entry (_enter() macros)
|
|
.TP
|
|
.B 2
|
|
Turn on trace of function exit (_leave() macros)
|
|
.TP
|
|
.B 4
|
|
Turn on trace of internal debug points (_debug())
|
|
.RE
|
|
.IP
|
|
This mask can also be set through /sys/module/cachefiles/parameters/debug.
|
|
.RE
|
|
.SH EXAMPLES
|
|
.P
|
|
As an example, consider the following:
|
|
.P
|
|
.RS
|
|
dir /var/cache/fscache
|
|
.br
|
|
secctx cachefiles_kernel_t
|
|
.br
|
|
tag mycache
|
|
.br
|
|
brun 10%
|
|
.br
|
|
bcull 7%
|
|
.br
|
|
bstop 3%
|
|
.br
|
|
secctx system_u:system_r:cachefiles_kernel_t:s0
|
|
.RE
|
|
.P
|
|
This places the cache storage objects in a directory called
|
|
"/var/cache/fscache", names the cache "mycache", permits the cache to run
|
|
freely as long as there's at least 10% free space on /var/cache/fscache/,
|
|
starts culling the cache when the free space drops below 7% and stops writing
|
|
new stuff into the cache if the amount of free space drops below 3%. If the
|
|
cache is suspended, it won't reactivate until the amount of free space rises
|
|
again to 10% or better.
|
|
.P
|
|
Furthermore, this will tell the kernel module the security context it should
|
|
use when accessing the cache (SELinux is assumed to be the LSM in this
|
|
example). In this case, SELinux would use cachefiles_kernel_t as the key into
|
|
the policy.
|
|
.SH CACHE CULLING
|
|
.P
|
|
The cache may need culling occasionally to make space. This involves
|
|
discarding objects from the cache that have been used less recently than
|
|
anything else. Culling is based on the access time of data objects. Empty
|
|
directories are culled if not in use.
|
|
.P
|
|
Cache culling is done on the basis of the percentage of blocks and the
|
|
percentage of files available in the underlying filesystem. There are six
|
|
"limits":
|
|
.TP
|
|
.B brun
|
|
.TP
|
|
.B frun
|
|
If the amount of free space and the number of available files in the cache
|
|
rises above both these limits, then culling is turned off.
|
|
.TP
|
|
.B bcull
|
|
.TP
|
|
.B fcull
|
|
If the amount of available space or the number of available files in the cache
|
|
falls below either of these limits, then culling is started.
|
|
.TP
|
|
.B bstop
|
|
.TP
|
|
.B fstop
|
|
If the amount of available space or the number of available files in the cache
|
|
falls below either of these limits, then no further allocation of disk space or
|
|
files is permitted until culling has raised things above these limits again.
|
|
.P
|
|
These must be configured thusly:
|
|
.IP
|
|
0 <= bstop < bcull < brun < 100
|
|
.br
|
|
0 <= fstop < fcull < frun < 100
|
|
.P
|
|
Note that these are percentages of available space and available files, and do
|
|
\fInot\fP appear as 100 minus the percentage displayed by the \fBdf\fP program.
|
|
.P
|
|
The userspace daemon scans the cache to build up a table of cullable objects.
|
|
These are then culled in least recently used order. A new scan of the cache is
|
|
started as soon as space is made in the table. Objects will be skipped if
|
|
their atimes have changed or if the kernel module says it is still using them.
|
|
.P
|
|
Culling can be disabled with the \fBnocull\fP option.
|
|
.SH SEE ALSO
|
|
\fBcachefilesd\fR(8), \fBdf\fR(1), /usr/share/doc/cachefilesd/README
|
|
.SH AUTHORS
|
|
.br
|
|
David Howells <dhowells@redhat.com>
|