いよいよ今回が最終回です。これまではKaiの動作原理やインストールの説明でしたが,
Kaiの利用事例紹介
まずは,
筆者が所属しているgooではgooホームというSNSサービスを提供しています。OpenSocialにいち早く対応するなど,
Kaiの構成は至ってシンプルで,
MySQLなどのRDBにmemcachedを組み合わせて,
動作状況をレポートするstatsコマンド
それでは運用に用いるKaiの機能をみていきましょう。memcachedではstatsコマンドを送るとオブジェクトの数などが取得できましたが,
uptime | kaiが起動してからの通算秒 |
time | 現在のUNIXタイム |
version | Kaiのバージョン番号 |
bytes | ノードが格納しているデータのサイズ。単位はbyte |
curr_ | ノードが格納しているデータの個数 |
curr_ | ノードに接続中のクライアントの数 |
cmd_ | ノードがgetコマンドを実行し, |
cmd_ | ノードがsetコマンドを実行し, |
bytes_ | ノードがクライアントにデータを送信したバイト数 |
bytes_ | ノードがクライアントからデータを受信したバイト数 |
kai_ | ノードを識別するためのソケットアドレス |
kai_ | 複製数と読み書き数 |
kai_ | consistent hashing のバケット数 |
kai_ | ノードにおけるconsistent hashingの仮想ノード数 |
kai_ | ローカルストレージの種類。etsまたはdetsになる |
kai_ | ノードが認識しているクラスターのノードリスト |
kai_ | 値が重複してしまったデータの数 |
erlang_ | Erlang プロセス数 |
erlang_ | Erlang バージョン |
Kaiにtelnetで接続してstatsコマンドを送っても値を確認できますが,
リスト1 kai_
<?php
$host = "localhost";
$port = 14013;
$memcache = new Memcache;
$memcache->connect($host, $port) or die ("Could not connect");
$status = $memcache->getStats();
print_r($status);
?>
リスト1の実行結果
$ php kai_stats.php Array ( [uptime] => 1077608 [time] => 1246117054 [version] => 0.3.0 [bytes] => 2116619959 [curr_items] => 1039170 [cmd_get] => 1977438 [cmd_set] => 100357 [bytes_read] => 3350521698 [bytes_write] => 257731220 [kai_node] => 172.20.200.40:14012 [kai_quorum] => 3,2,2 [kai_number_of_buckets] => 1024 [kai_number_of_virtual_nodes] => 128 [kai_store] => dets [kai_curr_nodes] => 172.20.200.40:14012 172.20.200.41:14012 172.20.200.42:14012 [erlang_procs] => 2699 [erlang_version] => 5.6.5 )
このように,
statsをグラフにする
statsについてみてきましたが,
このプラグインが描画の対象としている項目はbytes,curr_