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 相关文章推荐
ADODB类使用
Nov 25 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
php 目录遍历、删除 函数的使用介绍
Apr 28 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
php编写简单的文章发布程序
Jun 18 PHP
php实现scws中文分词搜索的方法
Dec 25 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
php ajax confirm 删除实例详解
Mar 06 PHP
PHP实现提高SESSION响应速度的几种方法详解
Aug 09 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 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 基本语法格式
2009/12/15 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
JavaScript触发器详解
2007/03/10 Javascript
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
javascript object array方法使用详解
2012/12/03 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
windows下Virtualenvwrapper安装教程
2017/12/13 Python
python flask中静态文件的管理方法
2018/03/20 Python
python实现飞机大战小游戏
2019/11/08 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
铭立家具面试题
2012/12/06 面试题
销售代表求职自荐信
2013/10/01 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
兴趣班停课通知
2015/04/24 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
导游词之江南周庄
2019/12/06 职场文书
Python OpenCV实现图形检测示例详解
2022/04/08 Python
Mysql如何查看是否使用到索引
2022/12/24 MySQL