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 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
海河写的 Discuz论坛帖子调用js的php代码
Aug 23 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
paypal即时到账php实现代码
Nov 28 PHP
PHP性能优化 产生高度优化代码
Jul 22 PHP
用PHP+MySQL搭建聊天室功能实例代码
Aug 20 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
PHP中使用循环实现的金字塔图形
Nov 08 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
CodeIgniter读写分离实现方法详解
Jan 20 PHP
PHP的消息通信机制测试实例
Nov 10 PHP
PHP常用字符串函数用法实例总结
Jun 04 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编程中八种常见的文件操作方式
2006/11/19 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
javascript一点特殊用法
2008/05/28 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
Python中用Decorator来简化元编程的教程
2015/04/13 Python
在Django的视图中使用form对象的方法
2015/07/18 Python
Python实现简单拆分PDF文件的方法
2015/07/30 Python
python绘制多个子图的实例
2019/07/07 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
基于python实现可视化生成二维码工具
2020/07/08 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
美术课外活动总结
2014/07/08 职场文书
企业安全生产目标责任书
2014/07/23 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
红色经典电影观后感
2015/06/18 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
MySQL中int (10) 和 int (11) 的区别
2022/01/22 MySQL
Sql Server之数据类型详解
2022/02/28 SQL Server