数据库连接池监控和管理的方法和装置的制造方法

文档序号:9667236阅读:369来源:国知局
数据库连接池监控和管理的方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据库管理领域,具体地,涉及一种数据库连接池监控和管理的方法和装置。
【背景技术】
[0002]随着互联网业务的增长,系统的交易量随之增长,系统处理压力增大,数据库操作的瓶颈开始显现。对于数据库的操作,数据库连接资源的管理非常重要。如果数据库连接资源能够多维度监控并合理的分配和管理,则可以有效的提升数据库的操作效率。现有的应用系统通常使用数据库连接池对数据库连接资源进行管理。目前,数据库连接池主要有以下不足:
1、数据库连接池的监控单一。现有的数据库连接池仅针对数据库的连接是否被占用进行监控。如果数据库连接已被应用(某个线程)占用,则该连接不能被其他应用操作(线程)使用,此时连接池认为该数据库连接繁忙。然而,该占用的数据库连接的数据操作可能并不频繁,以致此时数据库的访问压力并不大,实际上不需要创建新的数据库连接以提高效率。其次MaxIdleTime (最大空闲时间)空闲的连接超时后才被回收,空闲时间较长,监控单一造成资源不能及时释放。因此,数据库连接的监控机制单一,导致数据库连接资源浪费。
[0003]2、数据库连接池分配规则单一,不够有效。传统的数据库连接池包含连接数最大值(MAX)和初始值(INIT)两个参数。如果此时交易量峰值到来,数据库连接池连接很快就把连接占用,必须等数据库操作完或者是连接超时时才能释放,很容易造成数据库连接不够用。数据库的连接数管理不够合理,不够灵活、有效。其次初始值(INIT)长时间不用也是造成连接资源的浪费。

【发明内容】

[0004]本发明的目的在于,针对上述问题,提出一种数据库连接池监控和管理的方法和装置,以实现避免数据库连接资源浪费的优点。
[0005]为实现上述目的,本发明采用的技术方案是:
一种数据库连接池监控和管理的方法,包括获取数据库连接上SQL语句的平均连接吞吐量和数据库连接池连接的空闲时间比的步骤;
以及
接收到应用获取数据库连接请求时,根据上述获取的平均连接吞吐量和空闲时间比,按照MAX管理参数分发策略进行分配数据库连接数和释放数据库连接数,并根据业务高峰自动调整连接池的最大连接数和最大空闲时间(MaxIdleTime)初始值,返回给应用使用的步骤。
[0006]优选的,所述数据库连接池连接的空闲时间比为,根据SQL语句的提交时间和返回时间记录SQL语句的处理时间和空闲时间,根据SQL语句的处理时间和空闲时间计算得出。
[0007]优选的,还包括,将上述平均连接吞吐量与设定的平均连接吞吐量阀值相比较的步骤,如获取的平均连接吞吐量大于设定的平均连接吞吐量阀值,则认为数据库连接繁忙;如果获取的平均连接吞吐量小于该设定的平均连接吞吐量阀值,则认为数据库连接不繁忙;
以及将上述获取的空闲时间比与设定的空闲时间比阀值相比较的步骤,如获取的空闲时间比小于设定的空闲时间比阀值,说明数据库连接压力较大;如果获取的空闲时间比大于设定的空闲时间比阀值,说明数据库连接当前压力较小。
[0008]优选的,所述MAX管理参数分发策略,具体为根据上述平均连接吞吐量和空闲时间比组合形成公式、决策树或规则引擎,并根据形成的公式、决策树或规则引擎分配数据库连接。
[0009]优选的,形成的公式具体为:
V=Vl*a+V2 *b
a、b是各个参数的权重,VI代表平均连接吞吐量,V2代表空闲时间比,如果V大于0就增加连接,如V小于0就减少连接。
[0010]同时本发明技术方案还公开了一种数据库连接池监控和管理装置,包括监控模块和连接池管理模块,
所述监控模块,监控数据库连接上SQL语句的平均连接吞吐量和数据库连接池连接的空闲时间比;
所述连接池管理模块,接收应用的获取数据库连接请求,并从监控模块获取监控数据,按照MAX管理参数分发策略进行分配数据库连接数和释放数据库连接数,并根据业务高峰自动调整连接池的最大连接数和MaxIdleTime初始值,返回给应用使用。
[0011]优选的,所述数据库连接池连接的空闲时间比为,根据SQL语句的提交时间和返回时间记录SQL语句的处理时间和空闲时间,根据SQL语句的处理时间和空闲时间计算得出。
[0012]优选的,所述监控模块,将上述平均连接吞吐量与设定的平均连接吞吐量阀值相比较,如获取的平均连接吞吐量大于设定的平均连接吞吐量阀值,则认为数据库连接繁忙;如果获取的平均连接吞吐量小于该设定的平均连接吞吐量阀值,则认为数据库连接不繁忙;
以及将上述获取的空闲时间比与设定的空闲时间比阀值相比较,如获取的空闲时间比小于设定的空闲时间比阀值,说明数据库连接压力较大;如果获取的空闲时间比大于设定的空闲时间比阀值,说明数据库连接当前压力较小。
[0013]优选的,所述MAX管理参数分发策略,具体为根据上述平均连接吞吐量和空闲时间比组合形成公式、决策树或规则引擎,并根据形成的公式、决策树或规则引擎分配数据库连接。
[0014]优选的,形成的公式具体为:
V=Vl*a+V2 *b
a、b是各个参数的权重,VI代表平均连接吞吐量,V2代表空闲时间比,如果V大于0就增加连接,如V小于0就减少连接。
[0015]本发明的技术方案具有以下有益效果: 本发明的技术方案,通过对平均连接吞吐量和空闲时间比进行监控,对数据库连接进行多维度监控,从而准确的掌握数据库的繁忙程度,从而利用数据库的连接资源,而利用MAX管理参数分发策略进行分配数据库连接数和释放数据库连接数,避免数据库最小激活连接数(INIT)设置太大造成资源浪费,设置太小又没有什么意义,本技术方案把INIT参数去掉,当应用使用数据库连接时就创立连接,不使用数据库连接时就释放连接。达到了避免数据库连接资源浪费的目的。
[0016]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
【附图说明】
[0017]图1为本发明实施例所述的数据库连接池监控和管理装置的原理框图;
图2为本发明实施例所述的采用现有技术的数据库连接分配示意图;
图3为本发明实施例所述的采用本发明技术方案的数据库连接分配示意图。
【具体实施方式】
[0018]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0019]一种数据库连接池监控和管理的方法,包括获取数据库连接上SQL语句的平均连接吞吐量和数据库连接池连接的空闲时间比的步骤;
以及
接收到应用获取数据库连接请求时,根据上述获取的平均连接吞吐量和空闲时间比,按照MAX管理参数分发策略进行分配数据库连接数和释放数据库连接数,并根据业务高峰自动调整连接池的最大连接数和MaxIdleTime初始值,返回给应用使用的步骤。
[0020]数据库连接池连接的空闲时间比为,根据SQL语句的提交时间和返回时间记录SQL语句的处理时间和空闲时间,根据SQL语句的处理时间和空闲时间计算得出。
[0021]如图1所示,一种数据库连接池监控和管理装置,括监控模块和连接池管理模块, 其中:监控模块,对数据库连接和硬件资源进行多维度监控,得出监控数据。同时接收连接池管理模块的申请请求,通过监控结果,将监控数据返回给连接池管理模块。
[0022]监控模块监控的数据具体为,监控数据库连接上SQL语句的平均连接吞吐量(QPS)o
[0023]统计数据库平均连接的QPS。QPS等于一分钟内数据库连接提交的sql语句数/60s/连接数
平均连接统计QPS大于某个阈值,例如:30 sql/s,则认为数据库连接繁忙;如果小于该阈值,例如:30 sql/s,则认为数据库连接就不繁忙。
[0024]监控数据库连接池连接的空闲时间比(大事务场景)。
[0025]根据SQL的提交时间和返回时间记录SQL的处理时间和空闲时间,计算空闲时间比。
[0026]空闲时间比=空闲时间/总时间。如果空闲时间比小于某个阈值,例如:30%,说明系统数据库连接压力较大;如果空闲时间比大于某个阈值,例如:30%,说明数据库连接当前压力较小。
[0027]空闲时间如下:
I_数据操作_I —空闲时间—I_数据操作_I —空闲时间—I,
连接池管理模块,连接池管理模块,负责连接池的管理和MAX管理参数分发策略。连接池管理模块收到应用的获
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1