《PHP實(shí)例:php實(shí)現(xiàn)監(jiān)控varnish緩存服務(wù)器的狀態(tài)》要點(diǎn):
本文介紹了PHP實(shí)例:php實(shí)現(xiàn)監(jiān)控varnish緩存服務(wù)器的狀態(tài),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
PHP編程當(dāng)varnish和網(wǎng)站部署在同一臺(tái)服務(wù)器上的時(shí)候,我們不可能隨時(shí)登錄上服務(wù)器去查看varnish的命中率,沒想到有大神早就寫了出來,本日就分享給大家,使用網(wǎng)頁(yè)查看varnish命中率.
PHP編程系統(tǒng):centos 5.x
軟件:varnish-3.0.x
PHP編程ps:3.0以下的版本可以通過Socket連接到Varnish管理端口,通過stat命令查看,3.0以上沒有stat命令,只能通過下面的辦法解決.
代碼如下:
<?php
$outfile=shell_exec("/usr/bin/varnishstat -x");
$xml=simplexml_load_string($outfile);
echo $xml->getName() . "<br />";
foreach($xml->children() as $child)
? {
????? //$tmpName="";
????? foreach($child->children() as $subChild)
????? {
??????? if ($subChild->getName() =="name" )
???????? {
??????????? $tmpName=$subChild;
??????? }
??????? else? if ($subChild->getName() =="value" )
??????? {
??????????? if ($tmpName!="")
??????????? {
?????????????? $arys["$tmpName"]=$subChild;
?????????????? $tmpName="";
??????????? }
??????? }
??????? else
???????? {
??????????? continue;
??????? }
????? }
? }
? function byteReduce($bytes)
? {
????? if ($bytes>1099511627776)
????? {
????????? return round($bytes/1099511627776)."TB";
????? }
????? else if ($bytes > 1073741824)
????? {
????????? return round($bytes/1073741824)."GB";
????? }
????? else if ($bytes>1048576)
????? {
????????? return round($bytes/1048576)."MB";
????? }
????? else if ($bytes>1024)
????? {
????????? return round($bytes/1024)."KB";
????? }
????? else
????? {
????????? return $bytes."B";
????? }
? }
? echo "client_conn: ".$arys["client_conn"] . "<br />";
? echo "client_req: ".$arys["client_req"] . "<br />";
? echo "cache_hit: ".$arys["cache_hit"] . "<br />";
? echo "cache_miss: ".$arys["cache_miss"] . "<br />";
? echo "Cache hit rate: ".round(($arys["cache_hit"]/$arys["client_req"])*100)." % <br/>";
? echo "LRU nuked objects: ".$arys[n_lru_nuked]."<br/>";
? echo " ".byteReduce($arys["s_bodybytes"]+$arys["s_hdrbytes"])." Acc Content (".byteReduce($arys["s_hdrbytes"])." header ".byteReduce($arys["s_bodybytes"])." Body)";
?>
PHP編程效果如下:
PHP編程![PHP實(shí)例:php實(shí)現(xiàn)監(jiān)控varnish緩存服務(wù)器的狀態(tài)]()
PHP編程ps:為了查看實(shí)時(shí)情況,可以在這監(jiān)控頁(yè)加個(gè)html定時(shí)刷新.
好了,這樣就便利我們隨時(shí)查看varnish的狀態(tài)了.
《PHP實(shí)例:php實(shí)現(xiàn)監(jiān)控varnish緩存服務(wù)器的狀態(tài)》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP實(shí)例:php實(shí)現(xiàn)監(jiān)控varnish緩存服務(wù)器的狀態(tài)》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/12861.html