Chinaunix首页 | 论坛 | 博客
  • 博客访问: 540475
  • 博文数量: 76
  • 博客积分: 2990
  • 博客等级: 少校
  • 技术积分: 827
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-26 10:53
文章分类

全部博文(76)

文章存档

2011年(47)

2010年(13)

2009年(5)

2008年(11)

分类: Mysql/postgreSQL

2011-05-11 11:03:33

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有一定的了解.在选用时也有取舍的依据.
阅读(7488) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~