该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间: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 |
|
返回顶楼 | |
发表时间: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 ,预计明天下午就可以发布了 |
|
返回顶楼 | |
发表时间:2008-08-12
amoeba for mysql 0.24 released
重构了一下 connectionFactory 以及packetBuffer 以适应 amoeba for oracle 下载地址: http://www.sf.net/projects/amoeba 由于sourceforge 速度太慢,源代码目前正在移至 googlecode |
|
返回顶楼 | |
发表时间:2008-08-17
amoeba 开发者博客开通: http://amoeba.meidusa.com
amoeba将以更好的方式来提供服务。描述每一个版本升级的情况、解决使用者以及开发者问题。 另外Amoeba for Mysql 0.25 released。 这个版本已经包含了源代码。 |
|
返回顶楼 | |
发表时间: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. |
|
返回顶楼 | |
发表时间:2008-09-03
那么遇到update/insert/delete 将 query语句发送到 wirtePool,将 select发送到 readPool机器中执行。
那我入库的时候记录都到了wirtePool中,读取的时候走的readPool,那数据同步如何做到呢? |
|
返回顶楼 | |
发表时间:2008-09-04
数据同步还是得交给 mysql得复制。
一般目前包括oracle、mysql、postgresql 都有自身得master-slave结构。 他们之间数据同步都采用相应内部复制技术。 这一点amoeba就不需要考虑这方面了 |
|
返回顶楼 | |
发表时间:2008-09-16
amoeba for mysql 0.29 released
1、主要bug修复:当服务器端要求客户端密码加密采用老的方式的时候,导致amoeba向mysql server验证出现timeout问题。 非常感谢 网友 刘雅猛 多次抽出宝贵的时间测试amoeba。 项目URL: http://www.sf.net/projects/amoeba |
|
返回顶楼 | |
发表时间:2008-09-18
http://amoeba.meidusa.com/ 挂了
Error establishing a database connection |
|
返回顶楼 | |
发表时间:2008-09-18
让人挺郁闷得。 sourceforge 最近扩容了database,一些开源项目依赖的数据库主机名变了,没有通知出来,现在连shell主机也无法登陆,没办法修改wordpress的数据库配置了。
|
|
返回顶楼 | |