Fork me on GitHub
Translations of this page:

RRDtool Cache Daemon

In großen Installationen wird man über kurz oder lang feststellen, dass die Verarbeitung der Performancedaten eine recht hohe I/O-Last zur Folge hat. RRDtool muss extrem viele Updates auf Disk schreiben, kann dabei jedoch den Disk Cache nicht optimal ausnutzen.

Eine Optimierung stellt das Sammeln und Sortieren der Daten dar. Es ist für das System effektiver, viele Updates im Block in eine RRD Datenbank zu schreiben. Der Disk Cache kann dabei effektiver genutzt werden.

Mit der aktuellen RRDtool-Version ( SVN trunk 1550+ ) ist der rrdcached enthalten, der genau diese Situation verbessern soll.

An dieser Stelle möchte ich mich bei Florian octo Forster, Kevin Brintnall und Tobi Oetiker bedanken. Die Entwicklung dieses Daemons wurde vorbildlich auf der rrd-developers Mailingliste koordiniert.

Arbeitsweise

Der rrdcached arbeitet als Daemon im Hintergrund und öffnet einen UNIX oder TCP Socket, auf dem er auf Anfragen von rrdtool wartet.

rrdcached

Der rrdcached kennt einige wichtige Optionen, die beim Start übergeben werden.

Option -l definiert den Socket, auf dem der rrdcached Update-Requests annimmt. Der Default-UDP-Port ist 42217

-l unix:/pfad/zum/rrdcached.sock
-l 127.0.0.1
-l 127.0.0.1:8888

Option -L ist ein unprivilegierter Socket, der nur den FLUSH-Befehl zum Schreiben der RRD-Datenbanken durch den Daemon auslöst.

-L 127.0.0.1

Option -w bestimmt den Intervall in Sekunden, in dem die Daten auf Disk geschrieben werden sollen.

-w 1800

Option -z definiert einen Delay, der die über die Option -w definierten Schreibzyklen in einen zufälligen Bereich [0-delay] verteilt, um gleichzeitige Schreibzugriffe zu verhindern. Der Wert der Option -z darf nicht größer gewählt werden als -w.

-z 1800

Option -p definiert ein PID File

-p /var/run/rrdcached.pid

Option -j definiert den Pfad zu einem Journal-Verzeichnis. Dort werden alle Aufträge protokolliert und ggf. beim nächsten Start nachgefahren, falls der rrdcached-Daemon abstürzt.

-j /var/cache/rrdcached

Daraus ergibt sich beispielsweise ein Aufruf von rrdached mit folgenden Parametern

 rrdcached -w 1800 -z 1800 -p /tmp/rrdcached.pid -j /tmp -l 127.0.0.1

rrdtool

RRDtool selbst wird die Existenz des Daemons über die Option --daemon=<socket> mitgeteilt.

 rrdtool --daemon=127.0.0.1 update ...

Dies muss natürlich mit den Startoptionen des rrdcached übereinstimmen!

Integration in PNP

Da zwei Bestandteile von PNP auf den rrdcached vorbereitet werden müssen, ergeben sich Änderungen in zwei Config-Files.

1. Anpassen der process_perfdata.cfg für den Datensammler process_perfdata.pl

# EXPERIMENTAL rrdcached Support
# Use only with rrdtool svn revision 1511+
#
RRD_DAEMON_OPTS = 127.0.0.1:8888

2. Anpassen der config_local.php für das Webinterface

#
# EXPERIMENTAL rrdcached Support
# Use only with rrdtool svn revision 1511+
#
# $conf['RRD_DAEMON_OPTS'] = 'unix:/tmp/rrdcached.sock';
$conf['RRD_DAEMON_OPTS'] = '127.0.0.1:8888';

Ab PNP-0.4.11 sind die passenden Optionen bereits in den Beispieldateien enthalten.

de/pnp-0.4/rrdcached.txt · Last modified: 2009/08/08 20:25 by Joerg Linge
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0