kotaoueはそんなかんじ

kotaoueの最新情報。

memcachedのキャッシュのヒット率とかをPHPでモニタリングする。

memcachedに初めて触れたので、バッドノウハウかもしんないけども…
memcache.php見ながら、
すげーキャッシュがもりもり増える、楽しい楽しい!!
と盛り上がっていたものの、
とりあえず、キャッシュのヒット率がどれくらいなのかを
ログとしてとっておきたいなぁと思ったときの作業メモ。
PHP側で、どうやってmemcachedの状況みるべって思ったものの、
memcached-toolって便利なコマンドがあったので、それを使う。
memcached の中身を確認するなら memcached-tool コマンド | バシャログ。
さらに、memcached-tool stats の中にはhit_rateみたいな項目がなかったので、調べたところ、

上記の結果による get_hits の値を cmd_gets の値で割ってください。
memcached と Grails: 第 1 回 memcached をインストールして使用する

だそうだ。

なので、↓のようなの書いて、cronに突っ込んだ。

#!/usr/local/bin/php
<?php
$fileName = date("Ymd");

$command = "/usr/local/bin/memcached-tool localhost stats";
$commandResult = Array();

#ログ用に日時を抽出
$writeString = date("Y/m/d").",";
$writeString.= date("H:i").",";

#コマンドを実行
exec($command,$commandResult);
$tmp = Array();
$statsResult = Array();
foreach($commandResult as $value) {
	#結果を配列に入れなおす
	$tmp = explode(" ", trim($value));
	$tmp = array_filter($tmp, 'strlen');
	$tmp = array_values($tmp);
	
	$statsResult&#91;$tmp&#91;0&#93;&#93; = $tmp&#91;1&#93;;
}

$writeString.= ($statsResult&#91;"get_hits"&#93; / $statsResult&#91;"cmd_get"&#93;).","."\r\n";

#ファイル保存
$filedir = "/usr/memcached_log/";
$fp = FOpen("$filedir/".$fileName.".csv","a");
FWrite($fp,$writeString);
FClose($fp);
?>

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。