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静态新闻列表自动生成代码
Jun 14 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
一个图片地址分解程序(用于PHP小偷程序)
Aug 23 PHP
php学习笔记之基础知识
Nov 08 PHP
smarty内置函数foreach用法实例
Jan 22 PHP
PHP计算加权平均数的方法
Jul 16 PHP
php无序树实现方法
Jul 28 PHP
Yii框架分页实现方法详解
May 20 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
Laravel ORM 数据model操作教程
Oct 21 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 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/01/08 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
JavaScript Array扩展实现代码
2009/10/14 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python批量图片处理简单示例
2019/08/06 Python
Python换行与不换行的输出实例
2020/02/19 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
大三学生入党思想汇报
2014/01/02 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers