19 12
发新话题
打印

基于"异步生产者消费者"模型的启发式连接池

基于"异步生产者消费者"模型的启发式连接池

http://blog.csdn.net/VincentXie/archive/2007/11/16/1888252.aspx

大家试用一下觉得怎么样?

有什么BUG或者建议都可以直接发EMAIL一起研究讨论的

Email:vincentxie16@gmail.com
我认为这种模式化的思维方法对于构建企业级应用的设计人员很重要,提高系统非功能性要求的好方法,对于应用层与数据层之间的性能提升有作用,生产者、消费者、管理容器的负荷分布也要考虑系统的整体性能要求,思维方法不错,支持。

[ 本帖最后由 黄富强 于 2007-11-16 15:21 编辑 ]
有了更新,有了比较详细的使用说明,欢迎大家一起讨论研究
2007-11-18 00:29 辛苦
能贴出通过测试流量统计分析确定调整因子、相关系数、量的方法及曲线图吗?
测试工具用什么?
如何证实测试的有效性?
thank you

[ 本帖最后由 黄富强 于 2007-11-18 09:17 编辑 ]
其实我是很想弄那些曲线图的..........所以昨天找了一下MATLEB之类的软件,可惜不太懂用,因为我可以通过程序输出某一时刻当前的用户流量和当前池内连接数量的数值,还有条调整因子,上限,下限等,但是1次测试最小也用10000个连接,很难人手输入点,也不懂怎么用MATLEB自动读入那些点,没有用过,所以就放弃了..........

所以对于寻找调整因子的相关系数的时候我只是通过程序不断输出某时刻内的调整因子,连接数量的上限,下限,和目前连接数量,来关注他的变化,调节的准则是:尽量的另少点用户无法取得连接(在测试程序中,每次无法取得连接后就会抛出错误,计数器就会+1),可以通过增加用户重连数和提高调整因子的放大系数来调节,因为每次放大系数越大表示对错误的反应越剧烈,另外一个准则是尽量地另调整因子所调整到的目标连接数量尽量地靠近某一个值附近最小地波动,一开始大的浮动可以允许,因为流量的趋势剧增,但是当流量保持在某一个范围后,调整因子应该在某一个数值范围内尽量少的波动

测试过其他的系数,如果把放大系数调得过高,很容易对于流量剧增的趋势反应过分剧烈,可能导致马上满负载,当缩小的系数也太大的时候,就要经过很长的时间才能稳定到现在流量真正所需要的连接数的数值,相反如果放大系数设置的小的话,对错误的反映不够充分那么调节就失去时效了,对于缩小的系数设置的小的话,调整因子波动有可能会很大,缩小系数的意义在于缓解突发性质的流量对系统的不稳定,稳定系统,所以采用文中的那个策略"我们实在是希望让最大量的客户可以正常取得连接,而不是吝啬于几条连接的增加,尽量地降低"减少连接"的速度,尽量地减少分段函数形或者折线形的流量图对此系统所造成的不稳定。"经过很多的尝试,对于现在的配置文件,折中采取这两个系数

测试工具其实只是用程序模拟并发,就象文中所说的3个类,主程序类test不断调用takeConn产生新的线程模仿客户获取连接来做并发,然后该客户占用着连接睡眠一定时间来模仿该客户在处理事务,用一个计数器Counter里面的两个值分别计算,当前流量是当新建线程时候+1,当该线程睡眠完毕,关闭连接后,返回的时候-1,所以可以计算出某时刻所存在的处理的客户数量

如果版主有什么好的测试方法和建议请告诉我 ,谢谢
在这里很感谢斑竹对我设计的关注,因为我在其他论坛发了以后都是石沉大海...........

希望经过大家一起的研究和讨论后能够对设计进行相关的改进和完善,谢谢
有一些问题是老大难问题,研究吧,负荷大问题就显示出来;
找压力测试TOOLS校证(性能分析),把有条理的文档贴出来,包括你的测试思路,测试用例、测试点、测试结果分析,最后大家一起分析研究,提出完善的思路。

[ 本帖最后由 黄富强 于 2007-11-18 18:36 编辑 ]
要源代码,没必要*.CLASS,有TOOLS可以把它转成*.java的。
opensource
关注开源------>主动开源
好,我找个地方上传一下先
 19 12
发新话题