RRDtool を高速化する rrdcached の使い方
RRDcached とは
RRDcached は RRDtool のためのキャッシュサーバーです.
RRDtool は加速度や湿度センサーの値,サーバーのCPU負荷,パケット数,と言った時系列データに特化したデータベースです.RRDtoolだけでもかなり便利ですが,さらに RRDcached と組み合わせると,
が期待できます.
特に後者の効果が重要で,例えば,ラズパイベースのフィジカルコンピューティングで何も考えずにセンサデータを逐次 sdに書き込んでいると,sdカードはすぐに書き込み寿命に達します.こういう時は rrdtool + rrdcached の構成が一つの解決策になります(別解は tmpfs のようなRAMディスクを使う方法)
インストール
$ sudo apt install rrdcached
設定ファイル
/etc/default/rrdcached
デフォルト設定は以下の通り
アクセス制限(簡便な方法)
アクセス制限はファイルのパーミッションで行う(他の方法は設定がめんどくさいので無視)
デフォルト設定では,キャッシュサーバーとなる /usr/bin/rrdcached は root ユーザで起動している.
この設定は /etc/default/rrdcached の以下の記述に従っている.
# Optional unprivileged group to run under when daemon. If unset # retains invocation group privileges. #DAEMON_GROUP=_rrdcached # Optional unprivileged user to run under when daemon. If unset # retains invocation user privileges. #DAEMON_USER=_rrdcached
クライアント側は /var/run/rrdcahced.sock 経由でキャッシュサーバと通信をする
以上を踏まえて,アクセス制限は以下の2ファイルのパーミッション,owner を調整すれば良い
使い方
使い方: データベースの作成
/var/lib/rrdcached/db 以下に rrdファイルを用意するだけ
使い方:データベースへのアクセス
rrdtool のオプションで以下の二つを指定する
- 通信用のソケット /var/run/rrdcached.sock
- データベースのファイル名 /var/lib/rrdcached/db/データベースのファイル名
例えば
$ rrdtool fetch /var/lib/rrdcached/db/hogehoge.rrd AVERAGE
を rrdcached 経由で実行するなら
$ rrdtool fetch --daemon unix:/var/run/rrdcached.sock /var/lib/rrdcached/db/hogehoge.rrd AVERAGE
と"--daemon ソケット" を付与すればよい
動作確認
rrdtool info を実行すると良い
$ rrdtool info --daemon unix:/var/run/rrdcached.sock /var/lib/rrdcached/db/hogehoge.rrd