CentOS 6.6下Memcached 源码安装配置

主机环境: CentOS 6.6 x86_64

一,安装Memcached

1,由于Memcached依赖libevent 库,用它做Socket的处理,因此,我们需要安装libevent库,我这里就用yum来安装了.

yum install libevent

2,到官网下载memcached 的源码包. 

CentOS 6.6下Memcached 源码安装配置

最新版是 v1.4.24 

#wget

#tar xf  memcached-1.4.24.tar.gz

#cd memcached-1.4.24

编译安装

# yum install cyrus-sasl-devel.x86_64 

# ./configure  --prefix=/usr/local/memcached_1.4.24 --enable-sasl

但是有报错

CentOS 6.6下Memcached 源码安装配置

没有找到libevent库文件


 

# rpm -ql libevent

发现是安装到/usr/lib64 目录下的.

3,继续安装,,,,,  继续报错,, 算了,我们直接编译安装最新版 libevent 吧

libevent的官网是

CentOS 6.6下Memcached 源码安装配置

直接下载最新的

# wget

# tar xf libevent-2.0.22-stable.tar.gz

# cd libevent-2.0.22-stable

# ./configure --prefix=/usr/local/libevent_2.0.22

# make && make install

4,继续安装memcached

# ./configure  --prefix=/usr/local/memcached_1.4.24 --enable-sasl --with-libevent=/usr/local/libevent_2.0.22/

# make && make install

5,安装完成后  试运行下memcached 看有无报错

CentOS 6.6下Memcached 源码安装配置

来看下安装后,的目录树

CentOS 6.6下Memcached 源码安装配置

文件很少,可执行程序只有bin目录下的 memcached 一个,因此只能通过它来启动memcached服务.我们来看下memcached 命令的用法. 使用memcached -h 查看.

6, memcached参数详解

-p: 指定tcp协议的监听端口,默认11211

-U: 指定UDP协议的监听端口,默认也是11211

-s: 指定unix套接字路径,使用unix套接字来监听.

-a: 设置套接字的掩码.格式为八进制,默认0700

-l: 指定监听的网络地址.默认为0.0.0.0

-d: 将memcached作为守护进程,在后台运行.

-r: 内核文件的最大值限制.

-u: 指定memcached的运行身份.

-m: 指定用于存储缓存条目的最大内存值,单位为 MB (默认64MB)

-M: 始终不删除过期的旧数据,而是在内存耗尽过后直接报错.

-c: 限制同时的最大连接数.(默认 1024)

-k: 锁定所有分页内存.

注意:这里是一个限制值,限制了你可以锁定多少内存,如果分配了超过限定值的操作,将会失败.因此要针对启动memcached的用户进程正确的限制,而不是-u参数指定用户运行,在sh下,这个操作也可以使用 ulimit -S -l NUM_KB 来完成.对于一个大的缓存来说,这个有点危险,因此查看README文档和memcached主页去查看有关他的配置建议.

-v: 详细模式

-vv: 更详细,,

-vvv: 最详细,,

-h: 帮助信息.

-i: 打印memcached 和 libevent许可.

-P: 保存PID文件的路径及文件名,该参数只有在使用-d选项后才生效.

-f: 设置块(chunk)大小的增长因子,默认1.25

-n: 指定分配给key value flags 的最小空间. 默认48

-L: 尽量使用大内存页(如果有效的前提下).增加内存页的大小能够减少TLB失误数,并且能提高性能.为了能够从操作系统获取大的内存页,memcached将会分配所有的缓存条目到一个大的快(chunk)中.这种机制与所使用的操作系统有关,只有你的操作系统支持才有效.

-D: 使用<char>作为key前缀 和 ID的分隔符,用在状态报告中,默认的<char>是冒号 : ,如果使用该参数指定了分隔符,那么在状态收集中会自动打开,如果没有设置,那么需要向服务器发送 stats detail on 命令才会打开.

-t: 使用的线程数. 默认为4

-R: 通过该参数来设定一个限制值,定义每一个事件(event)请求的最大值,以便保护能够处理完成一个单独的客户端请求,一旦一个连接超过了这个值,那么memcached将会试图通过其他的连接来处理I/O.它的默认值为20

-C: 禁用CAS

-b: 设置等待(积压)队列的限制,默认1024

-B: 设置绑定的协议 --可选的有ascii,binary 或 auto(默认).

-I: 设定每一个块(slab)页的大小,默认的大小为1MB,最小为1KB,最大为128MB,调整这个值能够改变对缓存条目大小的限制.当心这个操作同样会增加slab的数目(使用-v来查看),并且会使用memcached的所有内存.

7,启动memcached

下面是启动memcached的两种方式.

第一种:

# ./memcached -u memcached -p 11211 -m 64m -vv

第二种方式:

# ./memcached -d -m 10 -u memcached -l 127.0.0.1 -p 11211 -c 50 -P /tmp/memcached.pid -vv

以下是输出内容:

slab class  1: chunk size        96 perslab  10922

slab class  2: chunk size      120 perslab    8738

slab class  3: chunk size      152 perslab    6898

.....

slab class  40: chunk size    616944 perslab      1

slab class  41: chunk size    771184 perslab      1

slab class  42: chunk size  1048576 perslab      1

<26 server listening (auto-negotiate)

<27 send buffer was 124928, now 268435456

<28 server listening (udp)

<30 server listening (udp)

<29 server listening (udp)

<27 server listening (udp)

分析如下:

CentOS 6.6下Memcached 源码安装配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9544b562883782d0d3289ff9f37977a3.html