Reference

gcache(8)

control utility for CACHE GEOM class

NAME

gcache – control utility for CACHE GEOM class

SYNOPSIS

gcache create [-v] [-b blocksize] [-s size] name prov

gcache configure [-v] [-b blocksize] [-s size] name

gcache destroy [-fv] name

gcache label [-v] [-b blocksize] [-s size] name prov

gcache stop [-fv] name ...

gcache clear [-v] prov ...

gcache dump prov ...

gcache [--libxo] list

gcache [--libxo] status [-s name]

gcache load [-v]

gcache unload [-v]

DESCRIPTION

The gcache utility is used to control GEOM cache, which can speed up read performance by sending fixed size read requests to its consumer. It has been developed to address the problem of a horrible read performance of a 64 KiB blocksize FS residing on a RAID3 array with 8 data components, where a single disk component would only get 8 KiB read requests, thus effectively killing disk performance under high load.

Caching can be configured using two different methods: “manual” or “automatic”. When using the “manual” method, no metadata are stored on the devices, so the cached device has to be configured by hand every time it is needed. The “automatic” method uses on-disk metadata to detect devices. Once devices are labeled, they will be automatically detected and configured.

The first argument to gcache indicates an action to be performed:

create

Cache the given devices with specified name. This is the “manual” method. The kernel module geom_cache.ko will be loaded if it is not loaded already.

label

Cache the given devices with the specified name. This is the “automatic” method, where metadata are stored in every device's last sector. The kernel module geom_cache.ko will be loaded if it is not loaded already.

stop

Turn off existing cache device by its name. This command does not touch on-disk metadata!

destroy

Same as stop.

clear

Clear metadata on the given devices.

dump

Dump metadata stored on the given devices.

list

See geom(8).

status

See geom(8).

load

See geom(8).

unload

See geom(8).

--libxo

Generate output via libxo(3) in a selection of different human and machine readable formats. See xo_options(7) for details on command line arguments.

Additional options:

-f

Force the removal of the specified cache device.

-v

Be more verbose.

SYSCTL VARIABLES

The following sysctl(8) variables can be used to control the behavior of the CACHE GEOM class. The default value is shown next to each variable.

kern.geom.cache.used_hi: 20
kern.geom.cache.used_lo: 5
kern.geom.cache.idletime: 5
kern.geom.cache.timeout: 10
kern.geom.cache.enable: 1
kern.geom.cache.debug: 0

Debug level of the CACHE GEOM class. This can be set to a number between 0 and 3 inclusive. If set to 0 minimal debug information is printed, and if set to 3 the maximum amount of debug information is printed.

EXIT STATUS

Exit status is 0 on success, and 1 if the command fails.

SEE ALSO

geom(4), xo_options(7), geom(8)

HISTORY

The gcache utility appeared in FreeBSD 7.0.

AUTHORS

Ruslan Ermilov ⟨[email protected]⟩

History

--libxo since FreeBSD 16.0-CURRENT (2026-10-27).