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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
中英文字符串翻转函数
Dec 09 PHP
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
php常用Stream函数集介绍
Jun 24 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
php分页函数完整实例代码
Sep 22 PHP
php密码生成类实例
Sep 24 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
PHP基于自定义类随机生成姓名的方法示例
Aug 05 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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
paypal即时到账php实现代码
2010/11/28 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
jquery 防止表单重复提交代码
2010/01/21 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
基于KO+BootStrap+MVC实现的分页控件代码分享
2016/11/07 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
Vue.js的复用组件开发流程完整记录
2018/11/29 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
JavaScript的一些小技巧分享
2021/01/06 Javascript
Python自动连接ssh的方法
2015/03/07 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
python实现维吉尼亚算法
2019/03/20 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
《海底世界》教学反思
2014/04/16 职场文书
企业文化演讲稿
2014/05/20 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
七年级话题作文之执着
2019/11/19 职场文书
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
VUE使用draggable实现组件拖拽
2022/04/06 Vue.js
微软发布Windows 11今年最大更新22H2(附 ISO 镜像官方下载)
2022/09/23 数码科技