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 性能初探

目录
相关文章
|
负载均衡 Ubuntu 应用服务中间件
|
前端开发 微服务 容器
springcloud - 使用knife4j聚合微服务接口文档
springcloud - 使用knife4j聚合微服务接口文档
springcloud - 使用knife4j聚合微服务接口文档
|
Java 关系型数据库 数据库连接
MyBatis Plus 解决大数据量查询慢问题
MyBatis Plus 解决大数据量查询慢问题
|
Java 数据安全/隐私保护 数据格式
Spring Cloud Gateway 网关整合 Knife4j 4.3 实现微服务接口文档聚合
Spring Cloud Gateway 网关整合 Knife4j 4.3 实现微服务接口文档聚合
|
6月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
5764 0
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
11月前
|
Linux 数据安全/隐私保护 C语言
新手向导:轻松离线搭建最新版OpenVPN(含一键安装脚本)
OpenVPN 是常用的虚拟私有网络工具,通过 Docker 搭建非常简单。但常用的 kylemanna/openvpn 镜像已三年未更新,停留在 OpenVPN 2.4 版本。为了升级到最新版本(如 2024 年 2 月发布的 v2.6.9),可以通过官方开源社区获取最新安装包并手动编译安装。步骤包括安装依赖、下载并编译 OpenSSL 和 OpenVPN、生成证书和配置文件等。此外,GitHub 上有一键安装脚本 openvpn-install.sh,简化了安装过程,但其版本可能不是最新的。安装完成后,还需配置 iptables 以确保客户端能正常使用代理网络。
14870 1
|
Java 数据库连接 数据库
全栈开发流程——后端连接数据源(二)
全栈开发流程——后端连接数据源(二)
|
存储 Java 应用服务中间件
Java规则引擎Drools急速入门
Java规则引擎Drools急速入门
Java规则引擎Drools急速入门
|
Ubuntu 网络协议 关系型数据库
idea如何配置不显示某些文件
【4月更文挑战第18天】idea如何配置不显示某些文件
2238 2
下一篇
oss云网关配置