Amoeba for mysql安装与测试
前提条件:
8G内存 16核CPU,一主库一从库
mysql 5.0 icc编译版
测试工具 mysqlslap
1.安装amoeba
装一下jdk
wget
chmod +x jdk-6u25-linux-i586-rpm.bin
./ jdk-6u20-linux-i586-rpm.bin
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_25
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
source /etc/profile
amoeba从网上下载,直接用
mkdir /usr/local/amoeba/
cd /usr/local/amoeba/
wget http://blogimg.chinaunix.net/blog/upfile2/101027160252.zip
unzip 101027160252.zip
chmod -R +x /usr/local/amoeba/bin/
2. 配置amoeba
amoeba.xml配置(出自网络有名的一篇测试文章)
8066
127.0.0.1
20
30
30
128
true
root
amopassword
60
com.meidusa.amoeba.net.AuthingableConnectionManager
defaultManager
3306
127.0.0.1
test
root
password
200
200
10
600000
600000
true
true
defaultManager
3308
127.0.0.1
test
root
password
200
200
10
600000
600000
true
true
1
server1
1
server1,server2,server2
${amoeba.home}/conf/rule.xml
${amoeba.home}/conf/functionMap.xml
${amoeba.home}/conf/ruleFunctionMap.xml
1500
master
master
slave
true
3. 启动amoeba
/usr/local/amoeba/bin/amoeba &
4.在amoeba配置文件中,将读按1:2比例分配到主从,写分配到主.
别忘记了在master,slave添加相应的mysql访问权限
5.要确认amoeba转到哪个服务,停止slave同步进程,在主从建相同的表插入不同的数据.
然后通过amoeba去读取
实践证明:
读按1:2比例分配到主从,写分配到主.这个要求是满足了,并且1:2的比例非常精确.不管是1:3还是1:4.
amoeba进程的消耗:
amoeba以java虚拟机启动,默认-server -Xms256m -Xmx256m -Xss128k
从进程启动开始,内存占用一直累加 达到256M*1.5物理内存,仍然未触发GC 直到重新启动进程
刚启动与启动一段时间相比,相同参数测试响应时间长一点.
内存与CPU充足的情况下:
mysqlslap -uroot -pamopassword -h127.0.0.1 -P8806 --concurrency=700 --number-of-queries=50000 \
--engine=myisam --debug-info --create-schema=test --auto-generate-sql --auto-generate-sql-load-type=write \
--auto-generate-sql-add-autoincrement --auto-generate-sql -x 3 -y 4 --auto-generate-sql-secondary-indexes=1
并发数 总查询数 engine type 响应时间 资源消耗
700 50000 myisam write 4.48s 376M/200% CPU
700 50000 myisam read 4.43s 376M/500%~800%CPU
write期间CPU占用也比较高.innodb引擎的测试响应时间慢 3~4倍
如果将java启动参数 256M 改成1G
查询的响应时间没有加快, 但内存占用加大,CPU使用率减少.
当然mysqlslap生成的表和查询相对简单,不能和正式的生产环境相比,但此测试仍让我对amoeba有一定的了解.在选用时也有取舍的依据.
阅读(7530) | 评论(0) | 转发(1) |