centos查看与修改memcached配置

[ 2016-07-21 23:03:00 | 作者: admin ]
字号: | |
查看memcached启动时的配置情况
ps -ef |grep memcached
attachments/201607/21_230740_1.png


上图中可以发现 13473 是pid, -c 3072 为连接数限制,-m 512 为内存限制。如果生产中不足可以增加。

修改当前配置,并重启memcached的方法
1、首先得到pid,上面已经得到。另外还有一个简单的方法 pgrep -l memcached ,可以百度下pgrep的其他用法
2、kill -9 13473 #这样结束进程不会影响已经运行的进程
3、/use/local/memcached/bin/memcached -d -m 512 -p 11211 -c 3072 -u root #运行下即可启动memcached


重启服务器让配置生效

vi /etc/rc.d/rc.local
然后将上面的第3行加入到文件尾部即可


获取memcached当前运行参数
telnet 127.0.0.1 11211
然后输入stats看状态,quit退出




memcached的基本设置参数:

        -p 监听的端口
        -l 连接的IP地址, 默认是本机
        -d start 启动memcached服务
        -d restart 重起memcached服务
        -d stop|shutdown 关闭正在运行的memcached服务
        -d install 安装memcached服务
        -d uninstall 卸载memcached服务
        -u 以的身份运行 (仅在以root运行的时候有效)
        -m 最大内存使用,单位MB。默认64MB
        -M 内存耗尽时返回错误,而不是删除项
        -c 最大同时连接数,默认是1024
        -f 块大小增长因子,默认是1.25
        -n 最小分配空间,key+value+flags默认是48
        -h 显示帮助







查看memcache运行状态,各个变量的含义:
1、telnet ip 端口号 连上MC
2、输入 stats 查看MC状态

  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分配的内存大小

  curr_items   当前存储的条目数量

  bytes 当前服务使用的MC内存

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

  好了,并没有读源码,不过看了几篇关于memcached的介绍,回头重新写一篇博文吧。。。这里简单说下,简单可以理解为MC的存储分配是按照分片来划分的,而每片按照一定的比例增长,如果一片存储区域不能存下当前的value,那么需要换一片更大的存储空间,就会产生一定的存储资源浪费。

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

  这个量显然也灰常重要,能看出来有多少items因为空间不足被挤出了MC
[最后修改由 admin, 于 2021-04-07 08:54:12]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2323

这篇日志没有评论。

此日志不可发表评论。