Memcached学习笔记之四:Memcached统计命令

Posted 素手揽清风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Memcached学习笔记之四:Memcached统计命令相关的知识,希望对你有一定的参考价值。

Memcached提供一系列的命令进行优化的查看,方便我们调整我们的存储策略,查看我们的使用率,内存的使用率以及浪费情况。

常用的命令有 stats、stats settings、stats items、stats slabs 等。

 

1. stats 命令 服务器信息统计

  用于返回服务器的统计信息,比如 pid(进程号)、连接数等,具体如下:

  • pid: memcache服务器进程ID
  • uptime:服务器已运行秒数
  • time:服务器当前Unix时间戳
  • version:memcache版本
  • pointer_size:操作系统指针大小
  • rusage_user:进程累计用户时间
  • rusage_system:进程累计系统时间
  • curr_connections:当前连接数量
  • total_connections:Memcached运行以来连接总数
  • connection_structures:Memcached分配的连接结构数量
  • cmd_get:get命令请求次数
  • cmd_set:set命令请求次数
  • cmd_flush:flush命令请求次数
  • get_hits:get命令命中次数
  • get_misses:get命令未命中次数
  • delete_misses:delete命令未命中次数
  • delete_hits:delete命令命中次数
  • incr_misses:incr命令未命中次数
  • incr_hits:incr命令命中次数
  • decr_misses:decr命令未命中次数
  • decr_hits:decr命令命中次数
  • cas_misses:cas命令未命中次数
  • cas_hits:cas命令命中次数
  • cas_badval:使用擦拭次数
  • auth_cmds:认证命令处理的次数
  • auth_errors:认证失败数目
  • bytes_read:读取总字节数
  • bytes_written:发送总字节数
  • limit_maxbytes:分配的内存总大小(字节)
  • accepting_conns:服务器是否达到过最大连接(0/1)
  • listen_disabled_num:失效的监听数
  • threads:当前线程数
  • conn_yields:连接操作主动放弃数目
  • bytes:当前存储占用的字节数
  • curr_items:当前存储的数据总数
  • total_items:启动以来存储的数据总数
  • evictions:LRU释放的对象数目
  • reclaimed:已过期的数据条目来存储新数据的数目

  这些数据隐含的几个基本关系:
    rusage_user、rusage_system:这两个命令可以分析cpu是否过高。
    curr_connections 、total_connections :分析连接是否过多
    cmd_get 、get_hits 、get_misses :命中率
    bytes 、bytes_read 、bytes_written :分析字节数流量
    curr_items 、total_items 、evictions :分析对象LRU频率
    1:缓存命中率= get_hits/cmd_get * 100%
    2:get_misses的数字加上get_hits应该等于cmd_get

  另外:
  stats sizes命令: 输出所有Item的大小和个数,该信息返回两列,第一列是 item 的大小,第二列是 item 的个数。注意:会锁定服务,暂停处理请求(建议不要使用)
  flush_all命令: flush_all [time] [noreply]      清理缓存的键值对,使内存中所有的item失效。

          加入参数 time 表示在 time 秒后失效。这个操作并不会真的释放内存空间,而是标识所有的item为失效。

  version命令:查看版本。

 

2. stats settings 命令 设置信息统计

  maxbytes:最大字节数限制,0无限制
  maxconns:允许最大连接数
  tcpport:TCP端口
  udpport:UDP端口
  verbosity:日志0=none,1=som,2=lots
  oldest:最老对象过期时间
  evictions:on/off,是否禁用LRU
  domain_socket:socket的domain
  umask:创建Socket时的umask
  growth_factor:增长因子
  chunk_size:key+value+flags大小
  num_threads:线程数,可以通过-t设置,默认4
  stat_key_prefix:stats分隔符
  detail_enabled:yes/no,显示stats细节信息
  reqs_per_event:最大IO吞吐量(每event)
  cas_enabled:yes/no,是否启用CAS,-C禁用
  tcp_backlog:TCP监控日志
  auth_enabled_sasl:yes/no,是否启用SASL验证

 

3. stats items 命令 数据项统计

  用于显示各个 slab 中 item 的数目和存储时长(最后一次访问距离现在的秒数),具体如下:

  number:该slab中对象数,不包含过期对象

  age:LRU队列中最老对象的过期时间

  evicted:LRU释放对象数

  evicted_nonzero:设置了非0时间的LRU释放对象数

  evicted_time:最后一次LRU秒数,监控频率

  outofmemory:不能存储对象次数,使用-M会报错

  tailrepairs:修复slabs次数

  reclaimed:使用过期对象空间存储对象次数

 

4. stats slabs 区块信息统计 

  chunk_size:chunk大小,byte

  chunks_per_page:每个page的chunk数量

  total_pages:page数量

  total_chunks:chunk数量*page数量

  get_hits:get命中数

  cmd_set:set数

  delete_hits:delete命中数

  incr_hits:incr命中数

  decr_hits:decr命中数

  cas_hits:cas命中数

  cas_badval:cas数据类型错误数

  used_chunks:已被分配的chunk数

  free_chunks: 过期数据空出的chunk里还没有被使用的chunk数

  free_chunks_end:新分配的但是还没有被使用的chunk数

  mem_requested:请求存储的字节数

  active_slabs:slab数量

  total_malloced:总内存数量

  被浪费内存数=((total_chunks或者used_chunks) * chunk_size) - mem_requested,如果太大,需要调整factor

  

 

 

 

  



























以上是关于Memcached学习笔记之四:Memcached统计命令的主要内容,如果未能解决你的问题,请参考以下文章

Python 学习笔记 - Memcached

memcached学习笔记

Linux学习笔记总结--memcached配置

基于CentOS6.5的LNMP下memcached学习笔记的整理

Xmemcached学习笔记

Python 学习笔记 - Redis