优化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 使用过期对象空间存储对象次数