HimaJyun僕の管理するサーバはMuninでリソース監視をしています。今回、MuninをRaspberryPi上に移動させることにしたのですが、IO負荷軽減のためにrrdcachedを利用しました。調べてみると日本語の情報はRHEL系が殆どでDebian系の情報が無かったため記事にしてみます。動作確認rrdcachedを使うMuninは監視してきた(1プラグイン辺り日/週/月/年の4つの)データをばらばらのファイルで書き込みます、するとどうなるかと言うと、ランダムアクセスのバーゲンセールになってディスクIOを持って行かれます。Piなどでこれを利用するのは自殺行為に等しいです。(実際に動かしてみるとうんともすんとも言わなくなりましたし)そこで、rrdcachedを利用して、しばらくの間キャッシュする事でIO負荷がとても減らせます、と言うのはこのページをご覧であれば既にご存知の情報だと思われます。以下の様な環境で試します。ある「重いからCGIにしたけどrrdcachedが分からない」状況ですね。確認はしていませんが、Debianでも行けるかと思われます。rrdcachedを設定すると言っても、多少のハマりポイントがあるだけで、ほぼそのまま動かせます。インストール当たり前ですね、rrdcachedを使うのですからrrdcachedをインストールする必要があります、そんな事はイカもタコも猫も杓子も理解しているはずです。普通にaptでインストール出来ます。アーカイブを取得する必要があります。ディスク容量が消費されます。16.04では多少の変更があるので少々設定方法が異なります。14.04などの従来のrrdcachedの場合です。ファイル内に「OPTS」と言う物があるのでそれを以下のように設定します。unix:/var/run/rrdcached.sock"-fや-w、-zに関しては後で説明しますが、だいたいこれで良いかと思います。16.04では引数が個別の変数に分かれており、しかもトラップが潜んでいます。実際に変更する必要がある項目だけを抜き出してみます。#WRITE_TIMEOUT=300#WRITE_JITTER=0#SOCKGROUP=rootBASE_OPTIONS=&quot;-B&quot;デフォルトの設定で「BASE_PATH」は「/var/lib/rrdcached/db」、「JOURNAL_PATH」は「/var/lib/rrdcached/journal/」に、pidやsockのパスも「/var/rub/rrdcached.(pid|sock)」なっていると思うので変更する必要はありません。「WRITE_TIMEOUT」は従来型の設定で言う「-w」オプションに当たる物です、アンコメントして好きな値を設定して下さい。「WRITE_JITTER」は従来型の設定で言う「-z」オプションに当たる物です、アンコメントして好きな値を......「SOCKGROUP」はソケットファイルのグループです、ここではグラフがCGIで動作しているため、「www-data」を指定します。「BASE_OPTIONS」はその他のオプションを指定する項目です、「-f」オプションや「-F」はこちらに設定しましょう(fとFは別物です)この「BASE_OPTIONS」に最初から指定されている「-B」オプションが曲者でして、これが存在すると多くの場合はMuninが権限エラーになります、ですので-Bオプションは排除して下さい。以下のようになる訳です。3600&quot;引数の説明いくつかの引数が登場しました、その中でも「-f/-F/-w/-z」はキャッシュに関する設定なので説明しましょう。-w(WRITE_TIMEOUT):書き込みの遅延時間(要はどれくらいキャッシュするか)です、「1800」が一般的な設定だと思われます、1800だと30分間のデータをキャッシュします。1800」なら、1800~3600秒の間で書き込みを行います、タイミングをずらす事で同時に大量の書き込みが発生しない様にします、-wより大きくしない方が良いらしいです。-f:この時間が経過すると「-w」云々関係無しに全てのデータを書き込む設定......だと思います、停電などでのデータ損失を防ぐ目的だと思われます、あまり小さな値だと要らない負荷が出るので大きめの値にするのがおススメです(-wの値+-zの値以上にした方が良いです、UPSなどがあって停電しない自信があるなら設定しなくても大丈夫でしょう)-F:デーモンの終了時(再起動やシャットダウン)にデータを全て書き込む設定です、指定しておいて困る事はないので指定した方が良いでしょう。16.04の設定でのみ登場するこいつ、これが指定されていると「JOURNAL_PATH」が「BASE_PATH」より上位のディレクトリだと書き込まない様にするセキュリティ用の設定らしいです、所謂chroot的な物つまりどういう事かと言うと、「BASE_PATH」の設定が「/hoge」なら「JOURNAL_PATH」が/hoge以下(/hoge/fugaや/hoge/piyo)でないと動作しませんでもって、デフォルト設定では「JOURNAL_PATH」は「BASE_PATH」より上位(同じ階層)に設定されています、どういう事かと言うと、デフォルト設定では絶対に動かないのです、この項目は指定する意味がありません、排除しましょう。グループにユーザを追加とてもとてもとてもとても古いrrdcachedだと「rrdcached」ユーザが存在したらしいですが、少なくとも今は存在せず、rootで動作します。そのために「-s(SOCKGROUP)」を指定するのですが、muninだとwww-dataが、www-dataだとmuninが読み書き出来なくなります、つまり、cgiの際にどちらかに合わせると反対側が困る訳です。そんな場合は、書き込めない側のユーザをグループに追加、今回は「www-data」を設定しているので「munin」グループに追加すればいいのです。権限周りがややこしくなるのでお互いをお互いのグループに追加しておくと楽でしょう。muninMuninの設定を変更Muninの設定(/etc/munin/munin.conf)に「rrdcached_socket」と言う設定項目があります、ここに、先程設定したsockファイルのパス(多くの場合は「/var/run/rrdcached.sock」)を設定するのです、迷うほどの物でもありませんね。/var/run/rrdcached.sock設定が出来たらMuninの再起動......は必要ありませんが、rrdcachedを再起動しておいてください。正常に動作しているかどうかはJournalファイルを確認するのが早いです。正常に動作していればJournalファイルのパス(/var/lib/rrdcached/journal)に「rrd.journal.xxxxxxx.x.xxxxxx」と言うファイルが出来ます(xは数字)、正常に動作していると、Muninが動作するたびにこのファイルのサイズが大きくなっていきます。ファイルサイズが0から大きくならない場合は何か間違えています、「/var/log/munin/munin-update.log」を確認しましょう。確認のためだけに5分待つのは無駄なので、Muninを今すぐ動かすコマンドがあります。Waitで死にます、rrdcachedがあって困る事はないと思われるのでぜひ設定してみて下さい。16.04でMariaDBをインストールするとパスワードが変NEXT[Bukkitプラグイン制作講座-其之三]コマンドに応答するナカのヒト:HimaJyun​散って美しいのは桜だけです、情報はまとまっていた方が美しいのです。