加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现监控varnish缓存服务器的状态

发布时间:2020-12-13 02:19:07 所属栏目:PHP教程 来源:网络整理
导读:《PHP实例:php实现监控varnish缓存服务器的状态》要点: 本文介绍了PHP实例:php实现监控varnish缓存服务器的状态,希望对您有用。如果有疑问,可以联系我们。 PHP编程 当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish

《PHP实例:php实现监控varnish缓存服务器的状态》要点:
本文介绍了PHP实例:php实现监控varnish缓存服务器的状态,希望对您有用。如果有疑问,可以联系我们。

PHP编程当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写了出来,本日就分享给大家,使用网页查看varnish命中率.

PHP编程系统: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实例:php实现监控varnish缓存服务器的状态

PHP编程ps:为了查看实时情况,可以在这监控页加个html定时刷新.
好了,这样就便利我们随时查看varnish的状态了.

《PHP实例:php实现监控varnish缓存服务器的状态》是否对您有启发,欢迎查看更多与《PHP实例:php实现监控varnish缓存服务器的状态》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读