论坛首页 Java企业应用论坛

Amoeba for mysql 0.31发布(读写分离、负载均衡、Failover、数据切分)

浏览 76373 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-08-05  
amoeba 0.22 版本发布:
bug fix:

1、解决在debug日志开启下,日志reporter线程访问selector.keys()、跟ConnectionManager线程访问selector.select(long),产生多线程并发问题。(selector.select、selector.keys 非线程安全)

http://www.sf.net/projects/amoeba
0 请登录后投票
   发表时间:2008-08-11  
经过一系列代码上面的性能调优,大前天下午专门对amoeba进行高并发的测试.

环境:

amoeba环境:

Linux core5 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux



cpu: 2颗 4核的AMD

vendor_id       : AuthenticAMD
cpu family      : 16
model           : 2
model name      : Quad-Core AMD Opteron(tm) Processor 2354
stepping        : 2
cpu MHz         : 2200.031
cache size         512 KB


8G内存



2台jdbc客户端, 机器跟amoeba所在的机器配置一致



amoeba配置:

                <property name="readThreadPoolSize">132</property>

                <!-- proxy server client process thread size -->
                <property name="clientSideThreadPoolSize">116</property>

                <!-- mysql server data packet process thread size -->
                <property name="serverSideThreadPoolSize">116</property>

                <!-- socket Send and receive BufferSize(unit:K)  -->
                <property name="netBufferSize">32</property>

                <!-- Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm). -->
                <property name="tcpNoDelay">true</property>





pool配置:

           <poolConfig><className>com.meidusa.amoeba.net.poolable.PoolableObjectPool</className>
                                <property name="maxActive">100</property>
                                <property name="maxIdle">100</property>
                                <property name="minIdle">10</property>
                                <property name="whenExhaustedAction">1</property>
                                <property name="minEvictableIdleTimeMillis">600000</property>
                                <property name="timeBetweenEvictionRunsMillis">600000</property>
                                <property name="testOnBorrow">true</property>
                                <property name="testWhileIdle">true</property>
</poolConfig>



2台客户端对amoeba 进行100个线程并发发起connection,总共发起500次请求,每个connection请求 100次 sql查询,每个sql查询返回2条数据.

每台客户端间隔10来秒启动几个这样的进程,总共启动40个进程.



经过10分钟在amoeba这一端看到客户端连接总共 (4288-1) 并发的jdbc客户端,server端有134个连接

2008-08-08 17:56:44,221 INFO  report -  State of server report:
- Uptime: 10m 783ms
- Report period: 10m 783ms
- Memory: 53474k used, 72584k total, 506816k max
* Server pool=multiPool
- pool active Size=134, pool Idle size=0
* Server pool=server1
- pool active Size=134, pool Idle size=0
* defaultManager
- Registed Connection size: 137
- packet out: 0
- bytesOut out: 0
* Mysql proxy Server
- Registed Connection size: 4288
- packet out: 0
- bytesOut out: 0





在这种高并发的情况下amoeba对每个连接的响应速度有所缓慢,但丝毫不影响其正常的运作.主要是server端不敢开太多的连接,mysql这端基本上面超过500个并发连接基本就不能正常对外提供服务了,这个跟mysql机器配置以及mysql配置有很大关系.

以后版本packet out/bytesOut out等都不作统计了.因此上面的log均为0.

上面的reporter每间隔1分钟汇报一次, 这种情形 4288绝对不是当时的最高值,目前amoeba的承受高并发能力还没有达到最高值,以后将会为多CPU做一个更优化的NIO框架设计,提升在高连接/高并发的优化设计.

目前版本0.24 暂时还未作 release ,预计明天下午就可以发布了

0 请登录后投票
   发表时间:2008-08-12  
amoeba for mysql 0.24 released

重构了一下 connectionFactory 以及packetBuffer 以适应 amoeba for oracle

下载地址:

http://www.sf.net/projects/amoeba


由于sourceforge 速度太慢,源代码目前正在移至 googlecode
0 请登录后投票
   发表时间:2008-08-17  
amoeba 开发者博客开通: http://amoeba.meidusa.com
amoeba将以更好的方式来提供服务。描述每一个版本升级的情况、解决使用者以及开发者问题。

另外Amoeba for Mysql 0.25 released。 这个版本已经包含了源代码。
0 请登录后投票
   发表时间:2008-08-27  
Amoeba for mysql 0.27 发布

这次发布主要是在性能上面有很大提升, 今天在4核 2cpu,8G内存下进行 100个线程并发请求amoeba,总共请求25000次, 每次sql返回的数据将近1500条.

在相同机器上面对mysql-proxy进行测试,在性能上比mysql-proxy有优势.具体数据这儿不方便说.

总的来说Amoeba系统设计为多核/多cpu更优越一点,如果单cpu上面 mysql-proxy可能会比amoeba在性能会好.

另外 Amoeba manager 将是 Amoeba 的下一个成员,负责管理amoeba,以及每个amoeba内部所有的DBServer.
0 请登录后投票
   发表时间:2008-09-03  
那么遇到update/insert/delete 将 query语句发送到 wirtePool,将 select发送到 readPool机器中执行。

那我入库的时候记录都到了wirtePool中,读取的时候走的readPool,那数据同步如何做到呢?
0 请登录后投票
   发表时间:2008-09-04  
数据同步还是得交给 mysql得复制。
一般目前包括oracle、mysql、postgresql 都有自身得master-slave结构。
他们之间数据同步都采用相应内部复制技术。

这一点amoeba就不需要考虑这方面了
0 请登录后投票
   发表时间:2008-09-16  
amoeba for mysql 0.29 released

1、主要bug修复:当服务器端要求客户端密码加密采用老的方式的时候,导致amoeba向mysql server验证出现timeout问题。

非常感谢 网友 刘雅猛 多次抽出宝贵的时间测试amoeba。

项目URL:
http://www.sf.net/projects/amoeba
0 请登录后投票
   发表时间:2008-09-18  
http://amoeba.meidusa.com/ 挂了
Error establishing a database connection
0 请登录后投票
   发表时间:2008-09-18  
让人挺郁闷得。 sourceforge 最近扩容了database,一些开源项目依赖的数据库主机名变了,没有通知出来,现在连shell主机也无法登陆,没办法修改wordpress的数据库配置了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics