优化MemCached的主要目的为增加命中率和提高内存使用率,在优化的时候可以根据以下参数综合考虑分析:
首先是进程项:
pid Memcached进程ID
uptime Memcached运行时间,单位:秒
time Memcached当前的UNIX时间
version Memcached的版本号
以下可分析CPU的使用率:
rusage_user 该进程累计的用户时间,单位:秒
rusage_system 该进程累计的系统时间,单位:秒
查看连接数情况:
curr_connections 当前连接数量
total_connections Memcached运行以来接受的连接总数
connection_structures Memcached分配的连接结构的数量
查看命中率:
cmd_get 查询请求总数
get_hits 查询成功获取数据的总次数
get_misses 查询成功未获取到数据的总次数
cmd_set 存储(添加/更新)请求总数
查看数据流情况:
bytes Memcached当前存储内容所占用字节数
bytes_read Memcached从网络读取到的总字节数
bytes_written Memcached向网络发送的总字节数
对象LRU被替代情况:
limit_maxbytes Memcached在存储时被允许使用的字节总数
curr_items Memcached当前存储的内容数量
total_items Memcached启动以来存储过的内容总数
evictions LRU释放对象数,用来释放内存
stats settings设置参数查看:
名称 描述
maxbytes 最大字节数限制,0无限制
maxconns 允许最大连接数
tcpport TCP端口
udpport UDP端口
inter
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 items查看:
名称 描述
number 该slab中对象数,不包含过期对象
age LRU队列中最老对象的过期时间
evicted LRU释放对象数
evicted_nonzero 设置了非0时间的LRU释放对象数
evicted_time 最后一次LRU秒数,监控频率
outofmemory 不能存储对象次数,使用-M会报错
tailrepairs 修复slabs次数
reclaimed 使用过期对象空间存储对象次数