探讨:如何通过stats命令分析Memcached的内部状态

Memcached有个stats命令,通过它可以查看Memcached服务的许多状态信息。使用方法如下:
先在命令行直接输入telnet 主机名端口号,连接到memcached服务器,然后再连接成功后,输入stats 命令,即可显示当前memcached服务的状态信息。
比如在我本机测试如下:
stats
STAT pid 1552
STAT uptime 3792
STAT time 1262517674
STAT version 1.2.6
STAT pointer_size 32
STAT curr_items 1
STAT total_items 2
STAT bytes 593
STAT curr_connections 2
STAT total_connections 28
STAT connection_structures 9
STAT cmd_get 3
STAT cmd_set 2
STAT get_hits 2
STAT get_misses 1
STAT evictions 0
STAT bytes_read 1284
STAT bytes_written 5362
STAT limit_maxbytes 67108864
STAT threads 1
END
这里显示了很多状态信息,下边详细解释每个状态项:
1.  pid: memcached服务进程的进程ID
2.  uptime: memcached服务从启动到当前所经过的时间,单位是秒。
3.  time: memcached服务器所在主机当前系统的时间,单位是秒。
4.  version: memcached组件的版本。这里是我当前使用的1.2.6。
5.  pointer_size:服务器所在主机操作系统的指针大小,一般为32或64.
6.  curr_items:表示当前缓存中存放的所有缓存对象的数量。不包括目前已经从缓存中删除的对象。
7.  total_items:表示从memcached服务启动到当前时间,系统存储过的所有对象的数量,包括目前已经从缓存中删除的对象。
8.  bytes:表示系统存储缓存对象所使用的存储空间,单位为字节。
9.  curr_connections:表示当前系统打开的连接数。
10. total_connections:表示从memcached服务启动到当前时间,系统打开过的连接的总数。
11. connection_structures:表示从memcached服务启动到当前时间,被服务器分配的连接结构的数量,这个解释是协议文档给的,具体什么意思,我目前还没搞明白。
12. cmd_get:累积获取数据的数量,这里是3,因为我测试过3次,第一次因为没有序列化对象,所以获取数据失败,是null,后边有2次是我用不同对象测试了2次。
13. cmd_set:累积保存数据的树立数量,这里是2.虽然我存储了3次,但是第一次因为没有序列化,所以没有保存到缓存,也就没有记录。
14. get_hits:表示获取数据成功的次数。
15. get_misses:表示获取数据失败的次数。
16. evictions:为了给新的数据项目释放空间,从缓存移除的缓存对象的数目。比如超过缓存大小时根据LRU算法移除的对象,以及过期的对象。
17. bytes_read:memcached服务器从网络读取的总的字节数。
18. bytes_written:memcached服务器发送到网络的总的字节数。
19. limit_maxbytes:memcached服务缓存允许使用的最大字节数。这里为67108864字节,也就是是64M.与我们启动memcached服务设置的大小一致。
20. threads:被请求的工作线程的总数量。这个解释是协议文档给的,具体什么意思,我目前还没搞明白。
总结:stats命令总体来说很有用,通过这个命令我们很清楚当前memcached服务的各方面的信息。

(0)

相关推荐

  • memcached常用命令_动力节点Java学院整理

    1.启动Memcache 常用参数 -p <num> 设置TCP端口号(默认设置为: 11211) -U <num> UDP监听端口(默认: 11211, 0 时关闭) -l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问) -c <num> max simultaneous connections (default: 1024) -d 以daemon方式运行 -u <u

  • Memcached常用命令以及使用说明详解

    存储命令的格式:<command name> <key> <flags> <exptime> <bytes><data block>参数说明如下: <command name> set/add/replace <key> 查找关键字 <flags> 客户机使用它存储关于键值对的额外信息 <exptime> 该数据的存活时间,0表示永远 <bytes> 存储字节数 <da

  • Memcached常用命令及使用说明

    一.存储命令 存储命令的格式: <command name> <key> <flags> <exptime> <bytes> <data block> 参数说明如下: <command name> set/add/replace <key> 查找关键字 <flags> 客户机使用它存储关于键值对的额外信息 <exptime> 该数据的存活时间,0表示永远 <bytes> 存储

  • 探讨:如何通过stats命令分析Memcached的内部状态

    Memcached有个stats命令,通过它可以查看Memcached服务的许多状态信息.使用方法如下:先在命令行直接输入telnet 主机名端口号,连接到memcached服务器,然后再连接成功后,输入stats 命令,即可显示当前memcached服务的状态信息.比如在我本机测试如下:statsSTAT pid 1552STAT uptime 3792STAT time 1262517674STAT version 1.2.6STAT pointer_size 32STAT curr_ite

  • strings命令分析浅谈Go和C++编译时的一点小区别

    最近查一个bug, 用strings命令分析, 竟然出乎意料地没有结果, 非常纳闷. 最后根据这个线索查出了bug的根本原因. 1.  在C++中, 即使函数在代码层面没有被调用, 也会最终编译到二进制中, 用strings可以分析.  #include <iostream> using namespace std; void fun() { printf("hello world\n"); // strings分析有结果 } int main() { return 0;

  • jstack配合top命令分析CPU飙高、程序死锁问题

    jstack:Java堆栈跟踪工具 jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件).线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁.死循环.请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因.线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待

  • 分析Python感知线程状态的解决方案之Event与信号量

    目录 一.停止线程 二.线程信号的传递 三.信号量 四.总结 一.停止线程 利用Threading库我们可以很方便地创建线程,让它按照我们的想法执行我们想让它执行的事情,从而加快程序运行的效率.然而有一点坑爹的是,线程创建之后,就交给了操作系统执行,我们无法直接结束一个线程,也无法给它发送信号,无法调整它的调度,也没有其他高级操作.如果想要相关的功能,只能自己开发. 怎么开发呢? 我们创建线程的时候指定了target等于一个我们想让它执行的函数,这个函数并不一定是全局函数,实际上也可以是一个对象

  • MySQL中使用SHOW PROFILE命令分析性能的用法整理

    show profile是由Jeremy Cole捐献给MySQL社区版本的.默认的是关闭的,但是会话级别可以开启这个功能.开启它可以让MySQL收集在执行语句的时候所使用的资源.为了统计报表,把profiling设为1 mysql> SET profiling = 1; 之后在运行一个查询 mysql> SELECT COUNT(DISTINCT actor.first_name) AS cnt_name, COUNT(*) AS cnt -> FROM sakila.film_act

  • 使用top命令分析linux系统性能的详解

    linux的top命令简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户 终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最"敏感"的任务列表.该命令可以按CPU使用.内存使用和执行时间 对任务进行排序:而且该命令的很多特性

  • Perl遍历目录和使用Linux命令分析日志的代码实例分享

    实例代码: 复制代码 代码如下: #! /usr/bin/perl -w$path = '/root/Documents';  # 当前工作目录$dir = "$path/images"; # 要遍历的目录$log_file = "$path/access_201209.log"; # nginx日志0903~0907,  filesize: 5.4G$result_file = 'result.f';  # 放置结果的文件 if(!open $output, &q

  • asp.net(C#)遍历memcached缓存对象

    STATS命令 遍历memcached缓存对象(C#)转载之青草堂 出于性能考虑,memcached没有提供遍历功能,不过我们可以通过以下两个stats命令得到所有的缓存对象. 1.stats items 显示各个slab中item的数目. 2.stats cachedump slab_id limit_num 显示某个slab中的前limit_num个key列表,显示格式:ITEM key_name [ value_length b; expire_time|access_time s] 除了

  • python如何进行基准测试

    基准测试属于性能测试的一种,用于评估和衡量软件的性能指标.我们可以在软件开发的某个阶段通过基准测试建立一个已知的性能水平,称为"基准线".当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响. 这是基准测试最常见的用途. Donald Knuth在1974年出版的<Structured Programming with go to Statements>提到: 毫无疑问,对效率的片面追求会导致各种滥用.程序员会浪费大量的时间在非关键程序的速度上,实际上

随机推荐