memcached实战系列(四)memcached stats命令 memcached优化
memcached提供一系列的命令进行优化的查看,方便我们调整我们的存储策略,查看我们的使用率,内存的使用率以及浪费情况。常用的命令有stats、stats settings、stats items、stats slabs
1.1.1. memcached stats命令
memcached stats命令主要是查询服务器的运行状态和其他内部数据,包含如下这些:
1:pid :服务器进程ID
2:uptime :服务器运行时间,单位秒
3:time:服务器当前的UNIX 时间
4:version :服务器的版本号
5:libevent:libevent的版本
6:pointer_size :服务器操作系统位数
7:rusage_user:该进程累计的用户时间
8:rusage_system:该进程累计的系统时间
9:curr_connections :当前连接数
10:total_connections :服务器启动后总连接数
11:connection_structures :服务器分配的连接结构的数量
12:reserved_fds:内部使用的misc fds 数量
13:cmd_get :获取请求数量
14:get_hits :获取成功的总次数,命中次数
15:get_misses :获取失败的总次数
16:cmd_set :存储请求数量
17:cmd_flush :flush请求的数量
18:cmd_touch:touch请求的数量
19:delete_misses :删除失败次数
20:delete_hits :删除命中
21:incr_misses :递增失败次数
22:incr_hits :递增命中次数
23:decr_misses :递减命中次数
24:decr_hits :递减失败次数
25:cas_misses :Cas 原子设置操作失败次数
26:cas_hits :Cas 命中次数
27:cas_badval :Cas 操作找到key, 但是版本过期,没有设置成功
28:touch_hits:touch命中次数
29:touch_misses:touch失败次数
30:auth_cmds :认证次数(包括成功和失败)
31:auth_errors :认证失败次数
32:bytes :已用缓存空间
33:bytes_read :总共获取的数据量
34:bytes_written :总写入数量数
35:limit_maxbytes :总允许写入的数据量,和分配的内存有关
36:accepting_conns:允许的总连接数
37:listen_disabled_num :监听失败的次数
38:threads:需要的工作线程数
39:hash_bytes:当前使用的Hash table容量大小
40:hash_is_expanding:指定Hash table是否自动增长
41:malloc_fails:malloc内存分配失败的次数
42:curr_items :当前缓存item 数量
43:total_items :从服务启动后,总的存储缓存item 数量
44:evictions :通过删除item 释放内存的次数
这些数据隐含的几个基本关系:
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的大小和个数,注意:会锁定服务,暂停处理请求(建议不要使用)
flush_all命令:使内存中所有的item失效。加入参数则表示在N秒后失效。这个操作并不
会真的释放内存空间,而是标志所有的item为失效
version命令:查看版本
1.1.2. memcached 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验证
stats settings 如下图所示:
1.1.3. memcached stats items数据项统计
number:该slab中对象数,不包含过期对象
age:LRU队列中最老对象的过期时间
evicted:LRU释放对象数
evicted_nonzero:设置了非0时间的LRU释放对象数
evicted_time:最后一次LRU秒数,监控频率
outofmemory:不能存储对象次数,使用-M会报错
tailrepairs:修复slabs次数
reclaimed:使用过期对象空间存储对象次数
stats items如下图所示:
1.1.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 stats命令 memcached优化的更多相关文章
- WCF开发实战系列四:使用Windows服务发布WCF服务
WCF开发实战系列四:使用Windows服务发布WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 上一篇文章中我们通过编写的控制台程序或WinForm程序来为本 ...
- memcached实战系列(三)memcached命令使用
memcached命令的使用,在这里我们最好了解一下命令的含义,对命令有一个大致的了解,在了解的基础上进行使用.这里的命名是常用的crud命令的演示. 1.1.1. memcached命令的格式 标准 ...
- memcached实战系列(二)memcached参数以及启动
memcached启动的时候配置的参数也比较多.在这里我就做一个汇总,需要的时候直接查看参数以及参数的含义. 下面是参数的定义以及解释. 1.1.1. 参数说明 -d选项是启动一个守护进程 -m是分配 ...
- ElasticSearch实战系列四: ElasticSearch理论知识介绍
前言 在前几篇关于ElasticSearch的文章中,简单的讲了下有关ElasticSearch的一些使用,这篇文章讲一下有关 ElasticSearch的一些理论知识以及自己的一些见解. 虽然本人是 ...
- memcached实战系列(五)Memcached: List all keys 查询所有的key
memcached可能当时设计的时候就把它定位为内存性的kv结构的缓存系统.所以没有持久化到磁盘的命令,也没有查看所有key的值得命令.可能觉得没必要吧,你要是缓存1个G内存的数据,自己都头大,还敢看 ...
- memcached实战系列(一)memcached安装
下载并安装Memcached服务器端 我用的是cenos6.5 64位系统. libevent是个程序库,它将Linux的epoll.BSD类操作系统的kqueue等事件处理功能封装成统一的接口,具有 ...
- memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程
1.1.1. 新建Item分配内存过程 1:快速定位slab classid,先计算Item长度 key键长+flag+suffix(16字节)+value值长+结构大小(32字节),如90byte ...
- memcached实战系列(六)理解Memcached的数据存储方式
Memcached的数据存储方式被称为Slab Allocator,其基本方式是: 1:先把内存分成很多个Slab,这个大小是预先规定好的,以解决内存碎片的问题.启动参数的时候配置进去的不懂得可以参考 ...
- shiro实战系列(四)之配置
Shiro之配置 Shiro 被设计成能够在任何环境下工作,从最简单的命令行应用程序到最大的的企业群集应用.由于环境的多样性,使得许多配置机制适用于它的配置. 一. 许多配置选项 Shiro的Secu ...
随机推荐
- [AHOI2016初中组]迷宫
题目描述 小雪和小可可被困在了一个无限大的迷宫中. 已经知道这个迷宫有 N 堵环状的墙,如果把整个迷宫看作是一个二维平面,那么每一堵墙都是平面上一个圆.任意两个圆不相交,不重合,也不会相切, 但有可能 ...
- [Sdoi2016]征途
Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜 ...
- ●洛谷P1083 借教室
题链: https://www.luogu.org/problemnew/show/P1083题解: 二分,差分 显然具有二分性: 如果只考虑1~p个人,就会在某一天无法满足, 那么显然只考虑1~[p ...
- [矩形并-扫描线-线段树]Picture
最近在补数学和几何,没啥好写的,因为已经决定每天至少写一篇了,今天随便拿个题水水. 题目大意:给你N个边平行于坐标轴的矩形,求它们并的周长.(N<=5000) 思路:这个数据范围瞎暴力就过了,但 ...
- bzoj 4518: [Sdoi2016]征途
Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地.除第m天外,每一天晚上Pine都必须在休息站过夜 ...
- POJ 3171 Cleaning Shifts
Description Farmer John's cows, pampered since birth, have reached new heights of fastidiousness. Th ...
- 抽象方法不能是static或native或synchroniz
abstract 是抽象了,只有声明,没有具体的实现方法 static是静态的,是一种属于类而不属于对象的方法或者属性,而我们知道,类其实也是一个对象,他是在class文件加载到虚拟机以后就会产生的对 ...
- 用js来实现那些数据结构11(字典)
我们这篇文章来说说Map这种数据结构如何用js来实现,其实它和集合(Set)极为类似,只不过Map是[键,值]的形式存储元素,通过键来查询值,Map用于保存具有映射关系的数据,Map里保存着两组数据: ...
- linux 下文件误删恢复
linux 下文件误删恢复 0x01 事件背景 某天晚上写代码的时候,本来想删除当前目录下一个叫xxx的文件夹 rm -rdf ./xxx/*, 结果光顾着和人说话,一不留神手贱把命令敲成了rm -r ...
- (转)SQL中的循环、for循环、游标
我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加.修改.删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃 ...