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 相关文章推荐
php采集速度探究总结(原创)
Apr 18 PHP
php根据分类合并数组的方法实例详解
Nov 06 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php调整服务器时间的方法
Apr 03 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
Oct 10 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 PHP
Ubuntu彻底删除PHP7.0的方法
Jul 27 PHP
PHP自动载入类文件函数__autoload的使用方法
Mar 25 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
php2html php生成静态页函数
2008/12/08 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
Javascript对象属性方法汇总
2013/11/21 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
js实现五星评价功能
2017/03/08 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
通过实例讲解JS如何防抖动
2019/06/15 Javascript
Javascript如何递归遍历本地文件夹
2020/08/06 Javascript
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
深入了解Python数据类型之列表
2016/06/24 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
法律进机关实施方案
2014/03/12 职场文书
社区党支部承诺书
2015/04/29 职场文书
家庭贫困证明
2015/06/16 职场文书
公司仓库管理制度
2015/08/04 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python