zoukankan      html  css  js  c++  java
  • 【转】命令行查看Memcached运行状态

    很多时候需要监控服务器上的Memcached运行情况,比如缓存的查询次数,命中率之类的。但找到的
    那个memcached-tool是linux下用perl写的,我也没试过windows能不能用。后来发现个简单的办法可以做到,就是使用Telnet。

    1、windows系统连接memcached端口 cmd命令行中键入telnet 192.168.1.1 11211 11211是memcached绑定的端口号。
    2、连接上端口后输入 stats命令,即可得到描述Memcached服务器运行情况的参数。
        STAT pid 4356 服务器进程ID
    STAT uptime 56625 服务器运行时间,单位秒
    STAT time 1225249079 服务器当前的UNIX时间
    STAT version 1.1.0 服务器的版本号
    STAT pointer_size 64
    STAT rusage_user 151.845489 该进程累计的用户时间(秒:微妙)
    STAT rusage_system 121.667603 该进程累计的系统时间(秒:微妙)
    STAT ibuffer_size 4096
    STAT curr_connections 13 连接数量
    STAT total_connections 54136 服务器运行以来接受的连接总数
    STAT connection_structures 318 服务器分配的连接结构的数量
    STAT cmd_get 100595 取回请求总数
    STAT cmd_set 6510 存储请求总数
    STAT get_hits 96543 请求成功的总次数
    STAT get_misses 4052 请求失败的总次数
    STAT bytes_read 4427679 服务器从网络读取到的总字节数
    STAT bytes_written 6585596 服务器向网络发送的总字节数

    1>、uptime 是memcached运行的秒数,
    2>、cmd_get是查询缓存的次数。
    3>、这两个数据相除一下就能得到平均每秒请求缓存的次数——最近niupu的流量很低,所以平均也就一秒请求一次多,
        这么点大的压力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。
    4>、下面的cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内
        容,就会调用一下cmd_set写进缓存里。
    5>、紧跟着是get_hits,就是缓存命中的次数。缓存命中率 = get_hits/cmd_get * 100%。
    6>、下面的get_misses的数字加上get_hits应该等于cmd_get。
    7>、而total_itemscurr_items表示现在在缓存中的键值对个数.
    8>、在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时,memcached就会删掉一些内容,上面的等式就不成立了


    命令行查看Memcached运行状态

    很多时候需要监控服务器上的Memcached运行情况,比如缓存的查询次数,命中率之类的。但找到的
    那个memcached-tool是linux下用perl写的,我也没试过windows能不能用。后来发现个简单的办法
    可以做到,就是使用Telnet。
    首先登录到服务器,然后在cmd命令行中键入
    telnet 127.0.0.1 11211
    其中127.0.0.1是服务器的地址(这里是本机) ,11211是memcached绑定的端口号。
    之后命令行窗口全黑只有光标提示,摸黑输入stats,即可得到描述Memcached服务器运行情况的参
    数。如下图:
     
    其中,uptime 是memcached运行的秒数,cmd_get是查询缓存的次数。这两个数据相除一下就能得到
    平均每秒请求缓存的次数——最近niupu的流量很低,所以平均也就一秒请求一次多,这么点大的压
    力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。
    下面的cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内
    容,就会调用一下cmd_set写进缓存里。紧跟着是get_hits,就是缓存命中的次数。缓存命中率 =
    get_hits/cmd_get * 100%。
    下面的get_misses的数字加上get_hits应该等于cmd_get。而total_itemscurr_items表示现在在缓
    存中的键值对个数,在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时
    ,memcached就会删掉一些内容,上面的等式就不成立了。
    话说回来,memcached要是能有一套完整的监测工具就太好了。memcached的安装和php相应配置请看
    这里。


    Memcached的stats命令

     telnet到memcached服务器后有很多的命令可以使用,除了大家熟知的add、get、set、incr、decr、replace、delete等赋值命令外,还有一系列的获取服务器信息的命令,这部分命令都是以stats开头的。
    用PHP的Memcache::getStats($cmd)也可以访问这些命令

    常用的命令

    stats
    显示服务器信息、统计数据等

    stats reset
    清空统计数据

    stats malloc
    显示内存分配数据

    stats cachedump slab_id limit_num
    显示某个slab中的前limit_num个key列表,显示格式如下
    ITEM key_name [ value_length b; expire_time|access_time s]
    其中,memcached 1.2.2及以前版本显示的是  访问时间(timestamp)
    1.2.4以上版本,包括1.2.4显示 过期时间(timestamp)
    如果是永不过期的key,expire_time会显示为服务器启动的时间

    stats cachedump 7 2
    ITEM copy_test1 [250 b; 1207795754 s]
    ITEM copy_test [248 b; 1207793649 s]

    stats slabs
    显示各个slab的信息,包括chunk的大小、数目、使用情况等

    stats items
    显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数)

    stats detail [on|off|dump]
    设置或者显示详细操作记录


    参数为on,打开详细操作记录
    参数为off,关闭详细操作记录
    参数为dump,显示详细操作记录(每一个键值get、set、hit、del的次数)

    stats detail dump
    PREFIX copy_test2 get 1 hit 1 set 0 del 0
    PREFIX copy_test1 get 1 hit 1 set 0 del 0
    PREFIX cpy get 1 hit 0 set 0 del 0

  • 相关阅读:
    VC 使用json cpp 静态库 问题解决
    <转>c++ builder JSONCPP 注意事项 XE2 解决编译问题 _Mfl
    窥探try ... catch与__try ... __except的区别
    二叉树与其它树
    《DirectX 9.0 3D游戏开发编程基础》 第二章 绘制流水线 读书笔记
    《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记
    《DirectX 9.0 3D游戏开发编程基础》必备的数学知识 读书笔记
    windows lua 多线程 线程同步
    <转>多线程中的lua同步问题
    php 检查email电子邮件函数(奇葩写法)
  • 原文地址:https://www.cnblogs.com/Randy0528/p/2004205.html
Copyright © 2011-2022 走看看