bbossgroups持久层框架链接池配置优化策略之一 空闲链接回收配置

简介: bbossgroups持久层框架链接池配置优化策略之一 空闲链接回收配置 poolman.xml文件中和空闲链接回收相关的配置项如下: 2 2 10 false 120000 240000 现在对这些配置项进行说明: 1.
bbossgroups持久层框架链接池配置优化策略之一 空闲链接回收配置

poolman.xml文件中和空闲链接回收相关的配置项如下:
    <initialConnections>2</initialConnections>
    
    <minimumSize>2</minimumSize>
    <maximumSize>10</maximumSize>
    <maximumSoft>false</maximumSoft>


<!--单位:秒-->
   	<skimmerFrequency>120000</skimmerFrequency>
	<!--单位:秒
	空闲链接回收时间,空闲时间超过指定的值时,将被回收
	-->
	<connectionTimeout>240000</connectionTimeout>
	



现在对这些配置项进行说明:

1.initialConnections是连接池初始化的数据库连接数,可根据需要进行配置,这里配置为2
2.minimumSize最小空闲链接数,缺省为0,有两种配置建议:
  配为maximumSize的一半,如果maximumSize为200则minimumSize配为100
  或者和initialConnections保持一致
minimumSize最好不要设置为0,免得池中的空闲连接被全部回收后,不再保持有空闲连接,也就是说为0时可能会造成连接池为空,从而失去连接池的意义。

3.maximumSize-连接池中允许的最大链接数,连接数达到这个数值后,如果maximumSoft为false时,连接池将不再允许池中的连接增长,如果为true将会增长连接数,增长的链接数是否回收以及什么时候回收依赖于skimmerFrequency、connectionTimeout参数的配置

4.maximumSoft-当连接池中的连接个数达到maximumSize后,是否允许再创建新的connection——true:允许,缺省值 ;false:不允许 ,一般如果应用程序中不存在链接泄露的情况下,设置为false。

5.skimmerFrequency-回收空闲链接操作间隔时间,秒(s)为单位,这个时间不能太短,否则检测频率太高,影响系统性能,我们一般设置为120000秒

6.connectionTimeout-单位:秒; 空闲链接回收时间,空闲时间超过指定的值时,将被回收;缺省为1200秒,我们设置为240000秒。


配置建议:minimumSize和initialConnections保持一致,如果initialConnections为0,会导致连接池向数据库获取物理链接的频率变高,从而导致降低系统性能(尤其是像mysql,获取链接的代价非常高,因为mysql会进行dns解析,会很慢,除非mysql关闭了该机制)。
maximumSoft为false,skimmerFrequency为120000秒,connectionTimeout为240000秒,这样配置也就是为了避免过渡频繁地回收空闲链接和初始化最小链接数,从而导致降低系统性能

以上建议纯属个人想法,如有不妥,欢迎批评指点,感兴趣的朋友可以参考我的另一篇文章: bbosspersistent 性能初探

目录
相关文章
|
6月前
|
Java 运维
开发与运维内存问题之在堆内存中新创建的对象通常首先分配如何解决
开发与运维内存问题之在堆内存中新创建的对象通常首先分配如何解决
30 1
|
存储 缓存 算法
《深入理解Java虚拟机》读书笔记(二)--对象的创建与空间分配及定位
《深入理解Java虚拟机》读书笔记(二)--对象的创建与空间分配及定位
124 0
|
SQL 监控 Java
如何避免JDBC池和内存溢出?优化策略大揭秘!
0 目标 生成订单接口的基准场景是什么结果。 SQL的问题定位
565 0
|
存储 缓存 监控
Android线程池原理详解
Android四种线程池原理
246 0
|
数据库 Windows 容器
如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?
如何设置IIS程序池的回收时间,才能最大程度的减少对用户的影响?
390 0
|
缓存 安全 前端开发
|
Android开发
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(二)
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(二)
378 0
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(二)
|
Android开发
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)
580 0
【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )(一)
|
缓存 Go 图形学
Unity缓存池
unity在创建物体后(申请内存),删除,内存中没有立刻释放,只是将引用取消掉. 缓存池:优点:减少内存消耗,优化运行时效率,防止内存泄漏.需要存放不同类型的游戏对象(GameObject) 使用字典来创建缓存池Dictionary> 缓存池创建:缓存池判断游戏物体是什么类型使用枚举 public...
1283 0
|
缓存 数据库 Windows
IIS应用程序池_缓存回收
原文:IIS应用程序池_缓存回收 本人最近由于公司业务,需要把问卷的问题和答案存入缓存中已提高问卷加载速度,减少数据库压力。 缓存关键代码(公司代码已做封装,这里只贴出关键代码): HttpRuntime.
1748 0