CentOS 6.6下Memcached 源码安装配置(2)

这里的slab就是相当于memcached提供的缓存,memcached服务器堆内存的分配单位就是slab,一个slab大小在默认情况下是1MB,而每一个slab又被分为若干个chunk,就像对磁盘或内存的使用一样一层一层的分割直到最小单位,而这里chunk就是最小的单位了,然后在这些chunk中保持我们缓存的条目 item,而chunk的大小也就完全一样了,因此,对于一个字节或者十个字节可能使用的chunk数目是一样多的,也就是说最少也存在着浪费.

还有一点需要说明的是,在每一个chunk中除了保存缓存条目的值(value)以外, 还有结构体, key .

图中chunk的增长大小就是因为有默认 -f 1.25的增长因子作用.

添加memcached可执行程序的软连接到系统PATH目录下

ln -s /usr/local/memcached_1.4.24/bin/memcached /usr/bin/

8,memcached的其他工具

在memcached的源码包中有一个scripts目录, 里面由一些自带的脚本和工具.

8.1, damemtop

该工具使用perl模块,如果以前没有安装过这些模块,那么只有安装过后才可以使用.

8.1.1, 安装perl相关模块

下面是AnyEvent  YAML  TermReadKey 三个模块的安装.

# yum install perl perl-TermReadKey perl-YAML.noarch  -y

# ./damemtop

YAML Error: Couldn't open /etc/damemtop.yaml for input:\n

Code: YAML_LOAD_ERR_FILE_INPUT

at ./damemtop line 543

运行脚本报错,,  提示需要/etc/damemtop.yaml 文件

那么可以吧scripts 目录下的 damemtop.yaml 复制到 /etc/ 目录下

分析配置文件 damemtop.yaml

这个文件的格式采用了YAML(是YAML Ain't a Markup Language的缩写).下面看一看配置文件内容:

CentOS 6.6下Memcached 源码安装配置

做好必要的配置后,就可直接运行 damemtop 了

如图:

CentOS 6.6下Memcached 源码安装配置

8.2 memcached-sysv服务脚本

顾名思义,该文件是个系统服务脚本.

# cp memcached.sysv /etc/init.d/memcached

# chkconfig --add memcached

查看服务脚本,由于我们的memcached是源码定制安装,所以需要注意脚本中的黑色字体部分,

#! /bin/sh

#

# chkconfig: - 55 45

# description:  The memcached daemon is a network memory cache service.

# processname: memcached

# config: /etc/sysconfig/memcached

# Source function library.

. /etc/rc.d/init.d/functions

PORT=11211

USER=memcached

MAXCONN=1024

CACHESIZE=64

OPTIONS=""

if [ -f /etc/sysconfig/memcached ];then

. /etc/sysconfig/memcached

fi

# Check that networking is up.

if [ "$NETWORKING" = "no" ]

then

exit 0

fi

RETVAL=0

prog="memcached"

start () {

echo -n $"Starting $prog: "

# insure that /var/run/memcached has proper permissions

chown $USER /var/run/memcached

daemon memcached -d -p $PORT -u $USER  -m $CACHESIZE -c $MAXCONN -P /var/run/memcached/memcached.pid $OPTIONS

RETVAL=$?

echo

[ $RETVAL -eq 0 ] && touch /var/lock/subsys/memcached

}

stop () {

echo -n $"Stopping $prog: "

killproc memcached

RETVAL=$?

echo

if [ $RETVAL -eq 0 ] ; then

rm -f /var/lock/subsys/memcached

rm -f /var/run/memcached.pid

fi

}

restart () {

stop

start

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status memcached

;;

restart|reload)

restart

;;

condrestart)

[ -f /var/lock/subsys/memcached ] && restart || :

;;

*)

echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"

exit 1

esac

exit $?

---------------------------------------------

# mkdir /var/run/memcached

# chown memcached:memcached /var/run/memcached

# service memcached restart  //看能否正常重启和启动服务.

当然如配置文件所示,响应的参数可以单独写到 /etc/sysconfig/memcached 文件中,这样memcached的配置文件结构更清晰.

8.3,  memcached-tool

memcached-tool 是基于perl 的脚本,使用前务必确认已经安装好perl

# ./memcached-tool  //直接运行工具查看效果

CentOS 6.6下Memcached 源码安装配置

执行没有参数的脚本后,会给出使用示例.

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

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