博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
memcached(四)--重点参数说明
阅读量:7309 次
发布时间:2019-06-30

本文共 2053 字,大约阅读时间需要 6 分钟。

对上一章列出了全部参数。其中有60%是不怎么用到的。

这一章节选取出我觉得重要的参数出来细讲。

 

常用参数

  • p 指定端口
  指定tcp监听端口。默认是11211。可是当一台机器需要跑多个memcached实例的时候,或者网维只能特定某些端口可用,这个端口是一定修改的。
  举个例子,启用memcached并且监听11212端口:
memcached -p 11212
  • d 守护进程
  守护进程。
一定使用的参数。mc启动的时候,设置为守护进程。进程后台执行。不使用-d参数会影响其他操作:
上图所示,如果没有-d参数,当前终端就不能执行其他任务。ctrl+c退出当前memcached进程。
memcached -d
  • m 内存大小

  memcached程序存储数据所分配的内存大小。默认64,单位MB。生产环境都是改为2G,4G的样子的。如果这个参数过小,memcached就变得不健康,需要LRU淘汰一些数据。

memcached -m 32
memcached -m 64

  我设置了这个参数,怎么样才能看到差别呢?可以通过memcached的stats指令查看。memcached启动后, telnet/nc对应的ip端口,然后输入stats指令。

nc localhost 11212

(nc和telnet的差别可自行baidu or google)

看到一堆memcache的信息

其中“STAT limit_maxbytes” 一项就是设置这个参数对应的内存大小了。

下图是-m 32 的情况:

  根据memcached的存储模型,chunk存放item,比如说1个4K的chunk存放一个1K的item,这3K的空间就会浪费的了。分配内存的时候需要预留一部分空间。并且定时检查memcached的监控状况。例如,生产环境估计一个memcached需要1G空间。那么我创建memcached实例的时候可能就要-m 1500 甚至-m 2048。比起预估的值更大一点。

PS1:接下来的系列讲到memcached的内存分配模型会细讲chunks,item的关系。

PS2:关于memcached的监控状况也会在后续讲到。

调优参数

  • c 连接数
  连接数,默认1024。简单的说,增加这个参数值可以提高效率,但是增加了机器的负载;降低这个参数反之。
 
  • f slab增长因子
  slab中chunk大小的增长因子。
这个参数对于memcahched内存分配极其重要的参数。默认1.25,如果这个参数越大,slab数量越少;如果这个参数越小,slabs越多。
 
  怎样理解“增长”的意思??请参照下图:
 
 
  在memcached的模型中,分为多个slab,每个slab中的chunk用于存储数据。增长关系是这样子的:在第一个slab中,的chunk是SIZE;第二个slab中的chunk是SIZE*factor;第三个slab的chunk的是第二个的大小*factor。。。
 
 
  譬如说,当启动memcached的时候,
增长因子设置为1.5。设置32m内存。输出详细日志查看。
memcached -p 11212 -f 1.5 -vvv -u root -m 32

 
  而修改为3的话,内存分配情况又不同了。
memcached -p 11212 -f 3 -vvv -u root -m 32

  当f这个参数越大,每chunk的增长就越快。

 
  • n 一个chunk最小空间
   一个chunk的最小大小。默认值48。
 
  • L 大页内存分配
  通过这个参数, 可以提高性能。不过需要系统支持。
 
  • b backlog队列的大小。
  与socket通信相关。任务过多处理不完的情况下可坑设置这个参数。不过出现这种问题,一般都是调小数据的大小,或者增加memcached实例。
 
  • B 二进制协议
  memcached一开始只支持文本协议。后来支持了二进制协议。文本协议和二进制协议的区别,就和HTTP协议和TCP/UDP协议的区别一样。二进制协议的话更快,但是不能通过telnet/nc等命令到mc中找数据
。memcached默认是既支持文本协议又支持二进制协议的。另外memcached14.1x版本使用二进制协议有bug,请见release。
  https://code.google.com/p/memcached/wiki/BinaryProtocolRevamped#Request_header 有二进制协议的具体格式说明。
 
  • I slab大小
  通过这个参数, 设置一个slab的大小。同时,最后一个slab是只有一个chunk的。也是chunk的最大值。
 
举个例子:
memcached -p 11212 -f 1.25 -vvv -u root -m 64 -I 20480

 
 
 
 

转载于:https://www.cnblogs.com/ELMND/p/4534131.html

你可能感兴趣的文章
Riak存储引擎bitcask与leveldb测试
查看>>
node常用模块
查看>>
OURS-S3C2410RP常见问题
查看>>
我的友情链接
查看>>
数据仓库入门(实验5)添加维度
查看>>
解决SQL出现15023错误,提示用户已存在
查看>>
解决Android系统下某些手机RadioButton无法居中(如三星G3508)
查看>>
Java 之建造者模式
查看>>
mysql死锁解决方法
查看>>
Mybatis传值方式
查看>>
网站知名度如何提高
查看>>
python类的使用
查看>>
基于postfix邮件网关搭建
查看>>
指数预测模型
查看>>
我的友情链接
查看>>
利用Diskpart分区
查看>>
Lync Server 2013企业版部署测试一:资源、DNS、环境准备
查看>>
linux高可用集群(HA)原理详解
查看>>
我的友情链接
查看>>
我的友情链接
查看>>