Memcached哈希性能优化环境配置

来源:互联网 发布:淘宝帐号出售 编辑:程序博客网 时间:2024/05/22 05:24

Memcached哈希性能优化环境配置

目录

1. 简介
2. 环境配置
3. 测试实例

声明

1. 本测试配置基于ubuntu 12.04 64 位server进行,其他Linux的发行版可能略有不同。
2. 中间配置可能出现各种问题,因个人操作系统环境不同,所以可能还是出现不同的问题。
3. 其实大致的过程如果熟悉的话可以直接参见项目的readme

简介

1. memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
2. YCSB
英文全称:Yahoo! Cloud Serving Benchmark (YCSB) 。是 Yahoo 公司的一个用来对云服务进行基础测试的工具。目标是促进新一代云数据服务系统的性能比较。为四个广泛使用的系统:Cassandra,、HBase、PNUTS和一个简单的片式MySQL执行,订了套核心基准测试和结果报告
3. Intel VTune
英特尔VTune™ 性能分析器

环境配置

1. 配置java以及maven
首先下载jdk,我下载的是jdk-8u5-linux-x64.tar.gz
接下来,解压
tar -zxvf jdk-8u5-linux-x64.tar.gz
然后
sudo mkdir -p /usr/lib/java/jdk
sudo mv jdk1.8.0_05/ jdk/sudo mv jdk/ /usr/lib/java/
接下来修改环境变量,在~/.profile或者~/.bashrc下添加这么几行
export JAVA_HOME=/usr/lib/java/jdkexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
最后修改一处
sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk/bin/java 300
然后source ~/.profile或是~/.bashrc,主要看你是修改了哪个文件
java -version看一下,如果显示正常就okay了
由于YCSB是基于maven的项目,所以最好本机安装个maven
下载maven,解压maven
wget -c http://apache.fayea.com/apache-mirror/maven/maven-3/3.2.2/binaries/apache-maven-3.2.2-bin.tar.gztar  -zxvf apache-maven-3.2.2-bin.tar.gz
mv apache-maven-3.2.2/ maven/sudo mv maven/ /opt/
添加环境变量,还是给上述文件加这么几行
export MVN_HOME=/opt/mavenexport PATH=$MVN_HOME/bin:$PATH
最后还是source一下就行了
2. 安装memcached
默认软件包里安装了build-essential,如果没有的话
sudo apt-get install build-essential
其实libevent可以直接apt-get install 安装,但是之前用VTune解析总是少了libevent的符号表,这个是memcached直接依赖的,不能忍,所以还是人手装了
安装步骤还是蛮简单的项目里的libevent和memcached均是下载好的,可以直接使用git clone之后直接进去编译吧
首先是libevent
cd libevent/mkdir build && cd build/../configure && makesudo make install
接下来就是memcached
cd memcached/mkdir build && cd build/../configure --prefix=/usr/local/memcached --with-libevent=/usr/localmakesudo make install
最后补上环境变量吧,还是之前说的办法
export MEMCACHED_HOME=/usr/local/memcachedexport PATH=$MEMCACHED_HOME/bin:$PATH
3. 安装Intel VTune
这个没啥好说的了,注意先申请一个序列号,非商业版的序列号就行,链接在这里,注册之后会邮件发个注册号然后./install.sh,我在自己的pc上装个GUI版的,后来弄了个云主机只有server版的所以只能用没有界面的。。。

测试实例

1. 启动memcached
直接上命令
memcahced -d -c 1024 -m 512 -l 127.0.0.1 -p 11211
2. 监控memcached
首先找到PID号
ps -aux | grep mem
然后
amplxe-cl -collect concurrency -collect locksandwaits -target-pid=PIDNUM
3. 启动YCSB-Memcached
首先编译下代码,进入YCSB-Memcached的根目录,然后
mvn clean package
然后启动测试
./bin/ycsb load memcached -s -P workloads/workloada -p "memcached.server=127.0.0.1" -p "memcached.port=11211" -p recordcount=1000
3. 生成report
运行结束后
amplxe-cl -report hotspots -result-dir RESULTDIR -call-stack-mode=all -group-by function



0 0
原创粉丝点击