Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21449
  • 博文数量: 5
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 102
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-05 14:50
个人简介

往事随风,心随你动;往事随风,心随你痛。

文章分类

全部博文(5)

文章存档

2013年(5)

我的朋友

分类: LINUX

2013-04-05 18:57:20

memcached-1.4.15分析与总结

一、slab内存结构

二、主要启动参数


-p:设置TCP监听端口。如果-l选项包含端口,则不使用本端口;如果没有-p选项有-U选项,那么tcp端口与UDP端口相同。

-U:设置UDP端口(0不使用UDP)。如果-l选项包含端口,则不适用本端口;如果没有-U选项有-p选项,那么UDP端口与tcp端口相同。

-l:指定监听地址,默认INADDR_ANY或监听地址和端口,并且可以指定多个端口。例如:-l 0.0.0.0:10086 -l 0.0.0.0:10087。如果-l参数中有监听地址,那么将不适用-p-U设置端口。

-sunix本地域socket文件路径。

-a:指定-s选项中socket权限,默认0700

-d:以守护进程方式运行。

-r:设置core文件为RLIM_INFINITY

-u:指定用户,当使用root用户运行memcached时,启动后将进程转换到该用户下。

-m:最大数据内存数量,item使用内存,非程序本身使用,单位为MB

-M:指定该选项,内存不足,不足以分配slab时报错。否则强制itemLRU替换。

-c:打开最大文件描述符数目。setrlimit调节。

-k:锁住程序内存页mlockall(MCL_CURRENT | MCL_FUTURE)ulimit -l 参数查看系统限制。

-P:保存PID到执行文件中。-d模式启动使用。启动时检查文件中的进程并杀掉进程。

-fchunk增长因子,默认1.25

-n:指定最小chunkkey+suffix+value大小。Item (no cas) 48Item(cas) 56。当指定-C选项时,最小chunk-n指定大小+48;当没有-C选项时,最小chunk-n指定大小+56

-L:大内存模式,启动时分配-m参数指定大小内存,可以检查内存碎片,增加内存利用率。需要操作系统支持(getpagesizesmemcntl)。

-t:启动处理网络请求线程数。默认是4

-R:每个线程最大处理请求事件数目。

-C:不适用CAS命令,item没有版本号。

-btcp连接请求的最大数量(backlog队列最大数量)。

-B:协议asciibinaryauto(默认)。auto根据请求内容自动判断,binary0x80开头

-I:指定item大小:default: 1mb, min: 1k, max: 128m
-D:设置key前缀和key值的分隔符,默认“:”,例如 “-D '#'”,则”get name#wang“命令时,会统计前缀name的命中次数等。

-o4个子参数选项。maxconns_fasthashpower=13(大于12,小于64),slab_reassignslab_automove=0(默认),12

1)         maxconns_fast:当连接数超过最大连接数(-c),立即返回错误并关闭连接。

2)         hashpower:设置hashpower_init

3)         slab_reassign:启动SLAB重分配线程,slab_reassign=true

4)         slab_automove=2时,当第一次发生LRU(没有指定-M选项,并且内存不足时。,从slabclass1开始向后查找一个有2slab page以上的slab class并将第一页强制分配给发生LRUslabclass。第二次发生LRU后,会从上一次选取的class之后进行查找合适的class进行page转移。

5)         slab_automove=1时,有slab_maintenance_thread线程自己选取src page,dest page进行转移。10秒检查一次。

启动举例:memcached -d -n 96 -l 0.0.0.0:10086 -l 0.0.0.0:10087 -I 64M -t 4 -C -m 1024 -o slab_reassign,slab_automove=1 -D '#' -vvv

未完待续。


阅读(2433) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~