Memcached启动、关闭参数(摘录)

时间:2021-08-31 14:53:28

启动参数注释如下:

-p <num>  指定服务TCP端口,默认为11211

-U <num>   指定服务UDP端口  默认11211表示打开,设置0表示关闭

-s <file> 指定unix domain socket的文件名,则关闭端口绑定

-a <mask> 文件属性屏蔽字。8进制,默认0700(和-s配合使用)

-l <ip_addr>  指定监听IP地址(默认对所有网卡IP都生效)

-d   run as a daemon 以精灵程序的方式运行

-r   设置coredump文件SIZE至上限

-u <username> 指定进程用户身份(只有以root运行时才有效,且root身份必须指定用户身份,memcached禁止以进程用户身份为root)

-m <num>  分配给memcached用作缓存的内存大小,单位为MB。默认64MB。

注意32位系统最大可管理的内存上限为3G,预留一些,测试分配2.8G是有效的。不要给memcached分配超过机器内存数,否则会自动使用swap分区,让性能大降,产生超时。(调优参数)

-M  LRU算法开关。缓存满时不使用LRU算法替换旧的数据,返回错误

每个slab内的数据使用LRU,不是全局的。因此,在一些情况下,反而会影响命中率(例如多数KEY-VALUE大小近似,都保存在同一slab的情况下)

-c <num>   最大并发连接数。默认1024。 memcached使用libevent, 可以支持10K个连接。且memcached推荐客户端缓存连接(长连接)(调优参数)

-k   是否调用mlockall()锁定内存页。

注意:如果锁定了内存页,则若申请内存大小超过锁定值(可以通过ulimit -l查看)时就有可能失败(不建议使用。默认ulimit -l只有64KB)

-v    输出详细信息(在event轮询时输出错误或警告信息,以daemon方式运行无效)

-vv   输出更详细的信息(包括输出客户端的命令及回应信息)

-vvv  输出最详细的信息(包括输出内部的状态信息)

-h   打印版本、帮助信息及退出

-i   打印memcached及libevent的licence

-P <file> 保存进程ID到指定文件。与-d配合使用

-f <factor>   chunk size的增长因子(合理范围1.05~2,默认:1.25)(1.2版本之前默认是2)

(调优参数)

-n <bytes>  每个ITEM保存数据占用的最小空间。最小空间大小=KEY的长度+value的长度+flags的长度(默认为48字节) 而每个ITEM的实际占用空间为 ITEM保存占用数据保存的最小空间 + ITEM结构占用的空间 = 48 + 32 = 80字节。因此chunk size的默认初始值为80字节(调优参数)

-L    尝试使用大容量内存页(如果可能的话)。增加内存页容量可以减少虚存-物理内存映射页表缓冲命中失败(TLB-MISSED)的次数, 并提高性能。但memcached会在启动的时候立即向OS申请-m参数指定的最大缓存块。(调优参数)

-D <char>  指定统计报告时ID同KEY之间的分隔符。默认的分隔符为“:”。 如果指定了此参数,统计采集功能就会自动启动;否则,可以通过发送“stats detail on”命令启动统计采集功能。

-t <num>  默认会创建4个工作线程,主线程用于监听客户建立的连接请求、accpet请求,然后通过管道通知子线程,由子线程处理读写请求。 memcached的多线程主要是通过实例化多个libevent实现的,分别是一个主线程和n个工作(workers)线程,无论是主线程还是workers线程全部通过libevent 管理网络事件, 实际上每个线程都是一个单独的libevent实例。建议不要超过系统CPU的个数。(调优参数)

-R  每次事件触发响应新连接的最大数目。设置此限制是防止其他I/O事件“挨饿”,得不到响应。每个工作线程都单独建立了libevent事件触发。(调优参数,一般不需要调整)

-C    Disable use of CAS 关闭'CAS'指令。意思是说如果这个值我最后一次取的没有被修改的话才存储这个值,比如我先获取一个key为”update_time”的值,然后有其他进程修改了这个值,此时我再调用cas设置这个值时则会返回一个EXSISTS的错误表示修改失败。默认支持cas指令。则每次value的修改,都会记录一个CAS序列号(CAS_UNIQUE)。gets指令会返回CAS_UNIQUE。

-b   指定监听队列长度(listen()的参数)。默认为1024。(调优参数。不需要调整,内核对监听队列长度有个上限)

-B    指定绑定的memcached协议。包括:ascii: 文本协议;binary: 二进制协议;auto: 自动检测(默认选项)

-I    改变slab page的容量大小,以调整ITEM容量的最大值,默认为1MB。设置参数:<number>[k|K|m|M]不能少于1024bytes(即1K),不能大于128MB。memcached不推荐大于1MB,大于1MB增加了最低的内存要求,并会减少记忆效率。调优参数)注:低版本memcached 如memcached-1.2.6不支持该参数,1.4以上可以;测试时,我分配了2M的Page,但是实际上缓存的数据大小仍不能大于1M,其他资料说memcached缓存的item不能大于1M

-S   Turn on Sasl authentication

启动SSL认证。需要在编译支持SSL。使用SSL认证时,只能使用二进制协议,不能使用文本协议。