Demonio intermediario que se coloca entre las aplicaciones y los archivos RRD. En lugar de que cada actualización escriba directamente al disco, las acumula en memoria y las escribe en lote, reduciendo drásticamente las operaciones de I/O. Esto es especialmente útil en sistemas de monitorización con cientos o miles de archivos RRD [Cacti, Collectd, Nagios, etc.].
# systemctl status rrdcached
$ rrdcached -l unix:/var/run/rrdcached.sock -p /var/run/rrdcached.pid -b /var/lib/rrd
$ rrdcached -l unix:/var/run/rrdcached.sock -p /var/run/rrdcached.pid -b /var/lib/rrd -B -j /var/lib/rrdcached/journal -w 300 -z 60 -f 3600 (arranque con journal para recuperar las actualizaciones pendientes si el demonio se reinicia inesperadamente [recomendado en producción]
-w 300 --> escribe al disco si los datos llevan 300s en caché
-z 60 --> añade hasta 60s aleatorios para no saturar el disco con muchos RRDs a la vez
-f 3600 --> flush completo cada hora como mínimo
-B --> solo permite archivos dentro del directorio base
-j <directorio> --> directorio para el journal [recuperación ante fallos]
$ rrdcached -l 0.0.0.0:42217 -l unix:/var/run/rrdcached.sock -b /var/lib/rrd -B
$ rrdcached -g -l unix:/tmp/rrdcached-test.sock -b /tmp/rrd-test -w 30
$ rrdtool update --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/host1-cpu.rrd N:45
$ rrdtool graph /tmp/cpu.png --daemon unix:/var/run/rrdcached.sock --start -3600 DEF:cpu=/var/lib/rrd/host1-cpu.rrd:value:AVERAGE LINE1:cpu#FF0000:"CPU uso"
$ rrdtool flushcached --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/host1-cpu.rrd
$ echo "STATS" | socat - unix:/var/run/rrdcached.sock
La configuración se puede afinar en:
# nano /etc/default/rrdcached
DAEMON=/usr/bin/rrdcached
DAEMON_USER=www-data
DAEMON_GROUP=www-data
BASE_PATH=/var/lib/rrd
JOURNAL_PATH=/var/lib/rrdcached/journal
WRITE_TIMEOUT=300
WRITE_JITTER=60
FLUSH_INTERVAL=3600
PIDFILE=/var/run/rrdcached/rrdcached.pid
SOCKFILE=/var/run/rrdcached/rrdcached.sock
SOCKGROUP=www-data
BASE_OPTIONS="-B -F -f ${FLUSH_INTERVAL}"