Memcached 概述
- Memcached 是一个开源的、支持高性能、高并发的分布式内存缓存系统,由C语言编写,总共 2000 多行代码
memcached 安装
yum install -y gcc libevent-devel
cd /opt/
wget -c http://iso.sqlfans.cn/linux/memcached-1.6.30.tar.gz
tar -zxvf /opt/memcached-1.6.30.tar.gz -C /opt/
cd /opt/memcached-1.6.30
./configure --prefix=/usr/local/memcached
make && make install
/usr/local/memcached/bin/memcached -d -m 512 -u root -p 11211 -c 3000 -P /tmp/memcached_11211.pid
netstat -lnpt | grep 11211
-d 选项是启动一个守护进程
-m 是分配给Memcache使用的内存数量,单位是MB
-t number of threads to use (default: 4)
-u 是执行Memcache的用户
-p 是设置Memcache监听的port,默认11211
-c 选项是最大执行的并发连接数,默认1024
-P 是设置保存Memcache的pid文件
memcached 监控
- 若 Memcached 热点数据集中在某个服务器节点上,此时可以对此服务器进行网络端口 Bonding,以提高带宽吞吐量。
- 对 Memcached 热点数据的分析,推荐使用 memkeys 工具,它是 tumblr 开源的类似top的工具,可用于实时查看 memcached 的 key 使用情况,安装过程如下:
yum install -y perl perl-devel m4 autoconf automake libtool gcc-c++ pcre-devel libpcap-devel ncurses-devel
cd /opt/
wget -c http://iso.sqlfans.cn/linux/memkeys-0.2.zip
unzip memkeys-0.2.zip
cd /opt/memkeys-0.2
./build-eng/autogen.sh
./configure
make && make install
- memkeys 的使用方法如下(calls是当前key在统计区间内的总请求次数、objsize是当前key的字节数、req/ses是当前key的每秒请求数)
[root@localhost ~]
memcache key calls objsize req/ses bw(kbps)
g1Xcdassdfadfadfadsf... 21 400 0/19 0.61
c2Xcdassdfadfadfadsf... 20 400 0/18 0.58
d3Xcdassdfadfadfadsf... 18 400 0/16 0.52
4aXcdassdfadfadfadsf... 17 400 0/15 0.49
gDXcdassdfadfadfadsf... 17 400 0/15 0.49
[root@localhost ~]
- 根据 Memkeys 提供的数据,可以有效地判断热点数据的分散是否均衡,通过调整缓存键值的过期时间和大小,来提高缓存命中率和减少内存占用。