如何查看你的 memcached 的状态

  最近略忙,好久没有更新博客了,已长草,今天来除下草,好了,不废话了,开始!

  现在很多web服务都会用到  memcached ,如何知道你的 memcached 是否正常工作,命中率如何呢,本文简单介绍一下:

  首先你需要知道  memcached 服务所在的ip 和端口号,这个一般会写在web服务的环境变量里面,当然也可以写在代码里面,不过这样更容易曝光,让memcached 服务受到攻击。

  1、telnet   ip   端口号  连上MC

  

  2、输入 stats    查看MC状态

  

  OK, 你就拿到了目前MC的状态,那么各个变量是什么意思呢?我们应该重点关注哪些量呢?

  3、各个变量的含义:

  STAT pid 22362 //memcache服务器的进程ID
  STAT uptime 1469315 //服务器已经运行的秒数
  STAT time 1339671194 //服务器当前的unix时间戳
  STAT version 1.4.9 //memcache版本
  STAT libevent 1.4.9-stable //libevent版本
  STAT pointer_size 64 //当前操作系统的指针大小(32位系统一般是32bit,64就是64位操作系统)
  STAT rusage_user 3695.485200 //进程的累计用户时间
  STAT rusage_system 14751.273465 //进程的累计系统时间
  STAT curr_connections 69
//服务器当前存储的items数量
  STAT total_connections 855430 //从服务器启动以后存储的items总数量
  STAT connection_structures 74 //服务器分配的连接构造数
  STAT reserved_fds 20 //
  STAT cmd_get 328806688 //get命令(获取)总请求次数
  STAT cmd_set 75441133 //set命令(保存)总请求次数
  STAT cmd_flush 34 //flush命令请求次数
  STAT cmd_touch 0 //touch命令请求次数
  STAT get_hits 253547177 //总命中次数
  STAT get_misses 75259511 //总未命中次数
  STAT delete_misses 4 //delete命令未命中次数
  STAT delete_hits 565730 //delete命令命中次数
  STAT incr_misses 0 //incr命令未命中次数
  STAT incr_hits 0 //incr命令命中次数
  STAT decr_misses 0 //decr命令未命中次数
  STAT decr_hits 0 //decr命令命中次数
  STAT cas_misses 0 //cas命令未命中次数
  STAT cas_hits 0 //cas命令命中次数
  STAT cas_badval 0 //使用擦拭次数
  STAT touch_hits 0 //touch命令未命中次数
  STAT touch_misses 0 //touch命令命中次数
  STAT auth_cmds 0 //认证命令处理的次数
  
STAT auth_errors 0 //认证失败数目
  STAT bytes_read 545701515844 //总读取字节数(请求字节数)
  STAT bytes_written 1649639749866 //总发送字节数(结果字节数)
  STAT limit_maxbytes 2147483648 //分配给memcache的内存大小(字节)
  STAT accepting_conns 1 //服务器是否达到过最大连接(0/1)
  STAT listen_disabled_num 0 //失效的监听数
  STAT threads 4 //当前线程数
  STAT conn_yields 14 //连接操作主动放弃数目
  STAT hash_power_level 16 //
  STAT hash_bytes 524288
  STAT hash_is_expanding 0
  STAT expired_unfetched 30705763
  STAT evicted_unfetched 0
  STAT bytes 61380700 //当前存储占用的字节数
  STAT curr_items 28786 //当前存储的数据总数
  STAT total_items 75441133 //启动以来存储的数据总数
  STAT evictions 0
//为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)

  STAT reclaimed 39957976 //已过期的数据条目来存储新数据的数目

  4、应该重点关注的变量:

  笔者认为,使用memcache应该主要关注如下变量(已经在上面标红)

  cmd_get  get请求总次数

  get_hits   get请求命中总次数

  get_misses get请求失败总次数

  这三个量可以算出MC的命中率get_hits / cmd_get  或者 get_hits / (get_hits+get_misses) ,这个是使用MC服务最重要的一个量,命中率越高越好。

  另外,需要关注:

  limit_maxbytes  为MC分配的内存大小

  bytes 当前服务使用的MC内存

  显然,这两个量标识了,你当前还有多少内存空间富余,也非常重要,当这两个量接近时,可以及时给MC扩容,根据笔者的经验,MC分配的空间不是全部能用的,实际能用的大约是分配空间的 90% 左右,为什么?笔者没有看过memcache的源码,猜测是因为 memcached 本身的key  value的索引也是需要耗费一定的内存的,等读了源码再来跟新。

  evictions 为获取空闲内存而删除的items数

  这个量显然也灰常重要,能看出来有多少items因为空间不足被挤出了MC

  好了,就酱!

  

时间: 2024-11-06 03:53:12

如何查看你的 memcached 的状态的相关文章

查看、分析memcached使用状态

检查.剖析memcached运用状况 访问量上升,数据库压力大,怎样办?好办法是在中心挡一层缓存!这个缓存需求高效,不能比数据库慢,不然服务质量受影响:假如能把数据用hash打散存储到硬盘,也是能够的,不过在内存越来越廉价的今日,仍是运用内存吧! mysql也有自个的缓存,也是存储在内存的,但是有一个说法是: 以下是引证片段: 只能有一个实例 意味着你能存储内容的上限即是你服务器的可用内存,一台服务器能有多少内存?你又能存多少呢? 只需有写操作,mysql的query cache就失效 只需数据

netstat查看端口的不同的状态信息

netstat命令是一个dos命令,后接不同的参数可以查看端口的不同的状态信息. 命令格式: netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval] 参数解析: 输入netstat -help: -a 显示所有连接和侦听端口. -b 显示在创建每个连接或侦听端口时涉及的可执行程序.在某些情况下,已知可执行程序承载 多个独立的组件,这些情况下,显示创建连接或侦听端口时涉及的组件序列.在此情况下,

安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error contacting service. It is probably not running

安装zookeeper-3.3.2的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下: JMX enabled by defaultUsing config: /hadoop/zookeeper/bin/../conf/zoo.cfgError contacting service. It is probably not running. jps查看进程,却发现进程已启动 7313  QuorumPeerMain 在网上查阅资料一共有三种解决方法: 1,

windows如何通过命令行查看memcache当前运行的状态

命令行下查看memcache的运行状态的命令主要是stats命令,步骤如下: (1)首先通过telnet命令连接上memcache,命令:telnet 127.0.0.1 11211 (2)直接输入stats 就可以得到当前memcache的状态. 对于memcache的状态各英文的意思做如下解释: pid memcache服务器的进程ID uptime 服务器已经运行的秒数 time 服务器当前的unix时间戳 version memcache版本 pointer_size 当前操作系统的指针

查看mysql主从配置的状态及修正 slave不启动问题

1.查看master的状态show master status;  //Position不应该为0show processlist;  //state状态应该为Has sent all binlog to slave; waiting for binlog to be updated2.查看slave状态show slave status;//Slave_IO_Running 与 Slave_SQL_Running 状态都要为Yesshow processlist;//应该有两行state值为:

通过查看mysql 配置参数、状态来优化你的mysql

mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标. 2. 直接使用mysqladmin查看其性能指标,例如: UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" mysqladmin两个参数,status,extended-st

linux查看CPU性能及工作状态的指令

衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换用户进程管理:进程开始和上下文切换 3,WIO:用于进程等待磁盘I/O而使CPU处于空闲状态的比率. 4,CPU的空闲率,除了上面的WIO以外的空闲时间 5,CPU用于上下文交换的比率 6,nice 7,real-time 8,运行进程队列的长度 9,平均负载 Linux中常用的监控CPU整体性能的

linux查看CPU性能及工作状态的指令mpstat,vmstat,iostat,sar,top

衡量CPU性能的指标: 1,用户使用CPU的情况:CPU运行常规用户进程CPU运行niced processCPU运行实时进程 2,系统使用CPU情况:用于I/O管理:中断和驱动用于内存管理:页面交换用户进程管理:进程开始和上下文切换 3,WIO:用于进程等待磁盘I/O而使CPU处于空闲状态的比率. 4,CPU的空闲率,除了上面的WIO以外的空闲时间 5,CPU用于上下文交换的比率 6,nice 7,real-time 8,运行进程队列的长度 9,平均负载 Linux中常用的监控CPU整体性能的

mysql 通过查看mysql 配置参数、状态来优化你的mysql

我把MYISAM改成了INNODB,数据库对CPU方面的占用变小很多' mysql的监控方法大致分为两类: 1.连接到mysql数据库内部,使用show status,show variables,flush status 来查看mysql的各种性能指标. 2. 直接使用mysqladmin查看其性能指标,例如: UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T&quo