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


Posted in PHP onDecember 30, 2014

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

系统:centos 5.x
软件:varnish-3.0.x

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实现监控varnish缓存服务器的状态

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

PHP 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
PHPEXCEL 使用小记
Jan 06 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
PHP时间戳 strtotime()使用方法和技巧
Oct 29 PHP
php实现memcache缓存示例讲解
Dec 04 PHP
php开启openssl的方法
May 15 PHP
PHP之sprintf函数用法详解
Nov 12 PHP
PHP获取当前文件的父目录方法汇总
Jul 21 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
php在线解压ZIP文件的方法
Dec 30 #PHP
php站内搜索关键词变亮的实现方法
Dec 30 #PHP
php使用PDO操作MySQL数据库实例
Dec 30 #PHP
discuz目录文件资料汇总
Dec 30 #PHP
浅谈php冒泡排序
Dec 30 #PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 #PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 #PHP
You might like
深入php常用函数的使用汇总
2013/06/08 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
jquery中插件实现自动添加用户的具体代码
2013/11/15 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
js动态创建及移除div的方法
2015/06/03 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
Python使用新浪微博API发送微博的例子
2014/04/10 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
在Python中执行系统命令的方法示例详解
2017/09/14 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
服务员岗位职责
2014/01/29 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
新农村建设典型材料
2014/05/31 职场文书
会议室标语
2014/06/21 职场文书
工作检讨书500字
2014/10/19 职场文书
Linux安装Docker详细教程
2022/07/07 Servers