1.检查libevent
首先检查系统中是否安装了libevent(Memcache用到了libevent这个库用于Socket的处理)。
# rpm -q libevent
libevent-1.4.13-4.el6.i686
如果没有安装,需先安装libevent。
安装libevent:
1.使用yum源安装:
# yum install libevent
2.通过下载libevent来安装:
下载:
#wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
解压:
#tar -zxvf libevent-1.4.13-stable.tar.gz -C /usr/local/
进入解压后的目录:
#cd libevent-1.4.13-stable/
配置编译、安装:
#./configure -prefix=/usr/libevent
#make
#make install
安装成功后,开始安装Memcached。
2.安装memcached
1.下载memcached的安装包:
#weget http://memcached.org/files/memcached-1.4.25.tar.gz
2.修改执行权限:
#chmod 777 memcached-1.4.25.tar.gz
3.解压安装包到指定目录
#tar -zxvf memcached-1.4.25.tar.gz -C /usr/local
4.进入解压后的目录
#cd /usr/local/memcached-1.4.25/
5.配置、编译、安装
#./configure -with-libevent=/usr/libevent/ -prefix=/usr/local/memcached
#make
#make install
安装过程中可能会有这样的错误:If it's already installed, specify its path using --with-libevent=/dir/
解决方法参考:http://71254468.iteye.com/blog/1871036
3.启动Memcached
$ /usr/local/bin/memcached -p 11211 -m 64m -d
说明一下Memcached参数:
-d选项是启动一个守护进程
-vv 用 very vrebose 模式启动,调试信息和错误输出到控制台
-p 监听的端口,使用的 TCP 端口。默认为 11211,最好是1024以上的端口
-l 连接的IP地址, 默认是本机
-u是用root用户指定运行Memcache的用户(root是不能运行Memcache的,所以这个参数仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
4.检查是否启动成功
使用telnet命令连接Memcached,如果没有安装telnet,参考:http://www.cnblogs.com/yangxia-test/p/4159891.html
# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
此时说明连接上了Memcached了。
再次状态上输入:stats
# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
stats
STAT pid 13670
STAT uptime 62493
STAT time 1451549760
STAT version 1.4.25
STAT libevent 1.4.13-stable
STAT pointer_size 32
STAT rusage_user 1.939705
STAT rusage_system 88.080609
STAT curr_connections 10
STAT total_connections 20
STAT connection_structures 12
STAT reserved_fds 20
STAT cmd_get 768459
STAT cmd_set 768460
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 768459
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 124034788
STAT bytes_written 118775569
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 18
STAT hash_bytes 1048576
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 55479587
STAT curr_items 315328
STAT total_items 768460
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 452131
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
END
输入quit退出telnet连接。
上述是Memcached的有关统计信息。统计信息的意义请参考:http://blog.163.com/czg_e/blog/static/46104561201132852042812/
5.查看Memcached的slabs使用情况
使用 memcached 的创造着 Brad 写的名为 memcachedtool 的 Perl 脚本,可以方便地获得 slab 的使用情况(它将 memcached 的返回值整理成容易阅读的格式)。
1.检查、安装Perl。
1.下载memcachedtool 。
2.执行命令查看slabs。
在memcachedtool的目录下:memcachedtool 主机名:端口
# memcached-tool localhost:11211
# Item_Size Max_age Pages Count Full? Evicted Evict_Time OOM
1 80B 3949s 1 1 yes 0 0 0
4 176B 4255s 17 100001 yes 0 0 0
5 224B 4067s 46 215326 yes 452131 0 0
各列的含义为:
列 含义
# slab class 编号
Item_Size Chunk 大小
Max_age LRU 内最旧的记录的生存时间
1MB_pages 分配给 Slab 的页数
Count Slab 内的记录数
Full? Slab 内是否含有空闲 chunk
6.关闭Mamcached
1.查找Memcached的pid
$ ps -ef | grep memcached
orcle 26973 1 0 13:01 ? 00:00:00 memcached -p 11211 -m 64m -d
oracle 26981 1 0 13:01 ? 00:00:00 memcached -p 11212 -m 64m -d
oracle 26993 26938 0 13:01 pts/0 00:00:00 grep memcached
2.kill掉Memacached进程
由上图知memecached进程为26973 26981
# kill -9 26973
# kill -9 26981
参考文档:http://memcached.org/downloads