zoukankan      html  css  js  c++  java
  • memcached(四)--重点参数说明

    对上一章列出了全部参数。其中有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

     
     
     
     
    转载烦请说明出处: github weibo
    新博客: hal123
  • 相关阅读:
    SpringMVC工作原理
    Centosyum方式安装nginx
    centos7通过yum安装JDK1.8
    经典SQL语句
    Jquery选择器
    JS获取当前日期并定时刷新
    MyEclipse快捷键大全
    强大的Layui前端框架地址
    MFC 实现来回滚动效果的进度条
    CImageList* 转 LPDISPATCH 在控件中显示图片
  • 原文地址:https://www.cnblogs.com/ELMND/p/4534131.html
Copyright © 2011-2022 走看看