phpはワニスキャッシュサーバーのステータスの監視を実装し、phpはワニスキャッシュを監視します
varnish と Web サイトが同じサーバーに配置されている場合、varnish のヒット率を確認するためにいつでもサーバーにログインすることはできません。 思いがけず、マスターがずっと前にそれを書いていました。 今日は共有します。ウェブページを使用してワニスのヒット率を確認してください。
システム: centos 5.x
ソフトウェア: varnish-3.0.x
ps: 3.0 より前のバージョンは、Socket 経由で Varnish 管理ポートに接続し、stat コマンドで表示できます。3.0 より上のバージョンには stat コマンドが存在せず、次の方法でのみ解決できます。
コードをコピーします コードは次のとおりです:
$outfile=shell_exec("/usr/bin/varnishstat -x");
$xml=simplexml_load_string($outfile);
echo $xml->getName() . "
";
foreach($xml->children() as $child)
{
//$tmpName="";
foreach($child->children() as $subChild)
{
if ($subChild->getName() == "名前" )
{
$tmpName=$subChild;
}
else if ($subChild->getName() == "値" )
{
if ($tmpName!="")
{
$arys["$tmpName"]=$subChild;
$tmpName="";
}
}
その他
{
続行;
}
}
}
関数 byteReduce($bytes)
{
If ($bytes>1099511627776)
{
リターンラウンド($bytes/1099511627776)."TB";
}
else if ($bytes > 1073741824)
{
リターンラウンド($bytes/1073741824)."GB";
}
else if ($bytes>1048576)
{
returnround($bytes/1048576)."MB";
}
else if ($bytes>1024)
{
ラウンドを返す($bytes/1024)."KB";
}
その他
{
return $bytes."B";
}
}
echo "client_conn: ".$arys["client_conn"] "
";
echo "client_req: ".$arys["client_req"] "
";
echo "cache_hit: ".$arys["cache_hit"] "
";
echo "cache_miss: ".$arys["cache_miss"] "
";
echo "キャッシュ ヒット率: ".round(($arys["cache_hit"]/$arys["client_req"])*100)." %
";
echo "LRU 核放棄されたオブジェクト: ".$arys[n_lru_nuked]."
";
echo " ".byteReduce($arys["s_bodybytes"]+$arys["s_hdrbytes"])." Acc Content (".byteReduce($arys["s_hdrbytes"])." header ".byteReduce($arys[" s_bodybytes"]).";
?>
効果は次のとおりです:
追記: リアルタイムの状況を確認するには、監視ページを定期的に更新するための HTML を追加します。
これでいつでもニスの状態を簡単に確認できるようになります
http://www.bkjia.com/PHPjc/935486.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/935486.html技術記事 PHP は Varnish キャッシュ サーバーのステータスの監視を実装しています。Varnish と Web サイトが同じサーバー上に展開されている場合、いつでもサーバーにログインしてデータを表示することはできません。