一种连接池调度方法及装置与流程

文档序号:19188276发布日期:2019-11-20 01:45阅读:307来源:国知局
一种连接池调度方法及装置与流程

本发明涉及数据处理技术领域,具体涉及一种连接池调度方法及装置。



背景技术:

随着科学技术的发展,数据以爆炸性的形式进行增长,各式各样的数据源也被逐渐应用于各行各业。

对于hive和impala等数据源,通常是启用连接池的方式与数据源进行连接,并对数据源中的数据进行相应操作。但是在后台系统中,通常存在多个数据源和多个连接池的情况,当向数据源请求获取数据的频率过高时,多个连接池之间的资源调度会出现不均衡的情况,浪费后台系统的系统资源。

因此,目前亟需一种能合理调度多个连接池的方法。



技术实现要素:

有鉴于此,本发明实施例提供一种连接池调度方法及装置,以解决当向数据源请求获取数据的频率过高时浪费系统资源的问题。

为实现上述目的,本发明实施例提供如下技术方案:

本发明实施例第一方面公开一种连接池调度方法,所述方法包括:

判断用于执行连接池调度的设备对应的处理器使用率和内存使用率是否都大于阈值;

若是,减少所述设备对应的多个连接池的配置时间,得到新配置时间;

若否,确定在第一预设时间内每一所述连接池对应的数据源的访问次数;

基于所有所述数据源的访问次数,配置每一所述连接池的最大连接数和最小连接数;

在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加所述数据库对应的超时时间,得到新超时时间。

优选的,所述基于所有所述数据源的访问次数,配置每一所述连接池的最大连接数和最小连接数,包括:

根据每一所述数据源的访问次数,将预设的总连接数按比例分配给每一所述连接池,作为每一所述连接池的最大连接数;

针对每一所述连接池,将所述连接池的最小连接数设置为所述最大连接数的预设百分比。

优选的,所述将预设的总连接数按比例分配给每一所述连接池,作为每一所述连接池的最大连接数,包括:

获取所有所述连接池中预设的特殊连接池当前的第一最大连接数;

将预设的总连接数按比例分配给每一所述连接池,得到每一所述连接池的第二最大连接数;

确定所述特殊连接池的第一最大连接数是否大于所述特殊连接池的第二最大连接数;

若否,将每一所述连接池的第二最大连接数作为每一所述连接池最新的最大连接数;

若是,将所述特殊连接池的第一最大连接数作为所述特殊连接池最新的最大连接数,以及将所述总连接数与第一最大连接数的差值按比例分配给其余所述连接池,得到其余所述连接池最新的最大连接数。

优选的,所述减少所述设备对应的多个连接池的配置时间,得到新配置时间,包括:

针对所述设备对应的每一连接池,分别减少所述连接池对应的最大等待时间、查询空闲时间和连接空闲时间,得到新最大等待时间、新查询空闲时间和新连接空闲时间。

优选的,所述减少所述设备对应的多个连接池的配置时间,得到新配置时间,包括:

确定所述设备对应的多个连接池的配置时间的减少百分比;

根据所述减少百分比,减少每个所述连接池的配置时间,得到新配置时间。

本发明实施例第二方面公开一种连接池调度装置,所述装置包括:

判断单元,用于判断用于执行连接池调度的设备对应的处理器使用率和内存使用率是否都大于阈值,若是,执行减少单元,若否,执行确定单元;

所述减少单元,用于减少所述设备对应的多个连接池的配置时间,得到新配置时间;

所述确定单元,用于确定在第一预设时间内每一所述连接池对应的数据源的访问次数;

配置单元,用于基于所有所述数据源的访问次数,配置每一所述连接池的最大连接数和最小连接数;

增加单元,用于在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加所述数据库对应的超时时间,得到新超时时间。

优选的,所述配置单元具体用于:

第一分配模块,用于根据每一所述数据源的访问次数,将预设的总连接数按比例分配给每一所述连接池,作为每一所述连接池的最大连接数;

第二分配模块,用于针对每一所述连接池,将所述连接池的最小连接数为所述最大连接数的预设百分比。

优选的,所述第一分配模块包括:

获取子模块,用于获取所有所述连接池中预设的特殊连接池当前的第一最大连接数;

第一分配子模块,用于将预设的总连接数按比例分配给每一所述连接池,得到每一所述连接池的第二最大连接数;

确定子模块,用于确定所述特殊连接池的第一最大连接数是否大于所述特殊连接池的第二最大连接数,若是,执行第二分配子模块,若否,将每一所述连接池的第二最大连接数作为每一所述连接池最新的最大连接数;

所述第二分配子模块,用于将所述特殊连接池的第一最大连接数作为所述特殊连接池最新的最大连接数,以及将所述总连接数与第一最大连接数的差值按比例分配给其余所述连接池,得到其余所述连接池最新的最大连接数。

优选的,所述减少单元具体用于:针对所述设备对应的每一连接池,分别减少所述连接池对应的最大等待时间、查询空闲时间和连接空闲时间,得到新最大等待时间、新查询空闲时间和新连接空闲时间。

优选的,所述减少单元具体用于:确定所述多个连接池的配置时间的减少百分比,根据所述减少百分比,减少每个所述连接池的配置时间,得到新配置时间。

基于上述本发明实施例提供的一种连接池调度方法及装置,该方法为:判断用于执行连接池调度的设备对应的处理器使用率和内存使用率是否都大于阈值;若是,减少多个连接池的配置时间,得到新配置时间;若否,确定在第一预设时间内每一连接池对应的数据源的访问次数;基于所有数据源的访问次数,配置每一连接池的最大连接数和最小连接数;在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加数据库对应的超时时间,得到新超时时间。在本方案中,通过处理器和内存的使用情况,以及根据向数据源请求获取数据的频率,调整每个连接池的配置信息,提高后台系统的系统资源利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种连接池调度方法的流程图;

图2为本发明实施例提供的配置连接池的最大连接数的流程图;

图3为本发明实施例提供的一种连接池调度方法的流程示意图;

图4为本发明实施例提供的一种连接池调度装置的结构框图;

图5为本发明实施例提供的另一种连接池调度装置的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

由背景技术可知,对于存在多个数据源和多个连接池的情况,当向数据源请求获取数据的频率过高时,多个连接池之间的资源调度会出现不均衡的情况,浪费后台系统的系统资源。

因此,本发明实施例提供一种连接池调度方法及装置,通过处理器和内存的使用情况,调整每个连接池的配置信息,以提高后台系统的系统资源利用率。

需要说明的是,本发明实施例中涉及的连接池调度方法及装置适用于后台系统,所述后台系统包括但不仅限于大数据统计平台,所述后台系统的具体类型在本发明实施例中不做具体限定。

参见图1,示出了本发明实施例提供的一种连接池调度方法的流程图,所述方法包括以下步骤:

步骤s101:获取用于执行连接池调度的设备对应的处理器使用率和内存使用率。

需要说明的,预先在一设备中部署所述后台系统,该设备至少包含处理器和存储器,所述存储器为硬盘或者磁盘。

在具体实现步骤s101的过程中,获取用于执行连接池调度的设备中的处理器信息和内存信息,根据处理器信息确定处理器使用率,根据内存信息确定内存使用率。

步骤s102:判断所述处理器使用率和内存使用率是否都大于阈值,若是,执行步骤s103,若否,执行步骤s104。

需要说明的是,所述后台系统的系统资源由所述处理器使用率和内存使用率决定,即可根据所述处理器使用率和内存使用率的大小确定所述后台系统的系统资源是否充足。

在具体实现步骤s102的过程中,预先设置一个阈值,当所述处理器使用率和内存使用率都大于阈值,确定所述后台系统的系统资源不充足。当所述处理器使用率和内存使用率都小于阈值,确定所述后台系统的系统资源充足。

需要说明的是,所述阈值对应的取值可根据实际需求进行设置。可选的,所述阈值的取值范围为:70%-90%,最优取值为80%。例如:当所述处理器使用率和内存使用率都大于80%,确定所述后台系统的系统资源不充足。

步骤s103:减少所述设备对应的多个连接池的配置时间,得到新配置时间。

需要说明的是,在所述设备中,需从多个数据源中获取数据,对于每一数据源,具体通过一个连接池从所述数据源中获取数据。例如:需从hive、mysql和impala三个数据源中获取数据,分别为hive、mysql和impala三个数据源启用三个连接池,即hive、mysql和impala分别对应一个连接池。

进一步需要说明的是,连接池的核心配置参数包括但不仅限于:初始化连接数、最小连接数、最大连接数、最大等待时间、查询空闲时间和连接空闲时间。

在具体实现步骤s103的过程中,针对所述设备对应的每一连接池,分别减少所述连接池对应的最大等待时间、查询空闲时间和连接空闲时间,得到新最大等待时间、新查询空闲时间和新连接空闲时间。

在更进一步的实现中,确定所述设备对应的多个连接池的配置时间的减少百分比,根据所述减少百分比,减少每个所述连接池的配置时间,得到新配置时间。

需要说明的是,所述减少百分比的取值可根据实际需求进行设置。可选的,所述减少百分比的取值范围为30%-60%,其中最优值为50%。例如:分别将所述连接池对应的最大等待时间、查询空闲时间和连接空闲时间减少50%。

步骤s104:确定在第一预设时间内每一所述连接池对应的数据源的访问次数。

需要说明的是,预先设置总连接数,并根据初始化规则预先将所述总连接数分配给各个连接池,完成初始化每个所述连接池的连接数,即所述总连接数等于所有连接池的连接数之和。所述总连接数的计算方式包括但不仅限于:总连接数=((处理器核心数*2)+有效磁盘数)。

进一步需要说明的是,对于任一数据源,当该数据源在第一预设时间内被高次数和高频率访问时,该数据源对应的连接池的连接数不足以支撑高频率和高次数访问,导致获取数据的时间过长。而其它数据源可能没有被访问或者访问次数非常少,即其它数据源的连接池并不需要太多连接数。因此,根据每一数据源的访问次数,调节所有连接池的连接数,以充分利用所述后台系统的系统资源。

步骤s105:基于所有所述数据源的访问次数,配置每一所述连接池的最大连接数和最小连接数。

在具体实现步骤s105的过程中,根据每一所述数据源的访问次数,将预设的总连接数按比例分配给每一所述连接池,作为每一所述连接池的最大连接数。例如:假设总连接数为18,数据源a、b和c的访问次数分别为1次、2次和3次,则数据源a对应的连接池的最大连接数为3,数据源b对应的连接池的最大连接数为6,数据源c对应的连接池的最大连接数为9。针对每一所述连接池,将所述连接池的最小连接数设置为所述最大连接数的预设百分比。所述最小连接数的具体取值根据实际需求进行设置,可选的,将所述连接池的最小连接数设置为所述最大连接数的三分之一。例如:对于一个连接池的最大连接数为9该连接池的最小连接数为3。

需要说明的是,上述涉及的设置最大连接数和最小连接数的方式仅适用于举例说明。

步骤s106:在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加所述数据库对应的超时时间,得到新超时时间。

需要说明的是,所述后台系统在运行过程中,数据库中存在海量的数据。当需要连接数据库查询数据时,由于数据库中存在海量数据,查询时间超过数据库预设的超时时间后,会出现数据库连接超时的情况,导致查询失败。

在具体实现步骤s106的过程中,在第二预设时间内,若出现数据库连接超时的次数大于次数阈值,则调整所述数据库对应的超时时间。确定所述超时时间的增加百分比,根据所述增加百分比增加所述数据库对应的超时时间。

所述增加百分比的取值范围可根据实际需求进行设置,可选的,所述增加百分比的取值范围为10%-30%,所述增加百分比的最优取值为20%。例如:将所述数据库对应的超时时间增加20%。

需要说明的是,周期性的执行上述步骤s101至步骤s106中的内容,实时调整各个连接池的配置信息,以充分利用后台系统的系统资源。

在本发明实施例中,当处理器使用率和内存使用率都大于阈值时,减少多个连接池的配置时间。当处理器使用率和内存使用率都小于阈值时,确定在第一预设时间内每一连接池对应的数据源的访问次数,基于所有数据源的访问次数,配置每一连接池的最大连接数和最小连接数。在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加数据库对应的超时时间,提高后台系统的系统资源利用率。

需要说明的是,上述本发明实施例图1步骤s105中涉及的配置每一所述连接池的最大连接数,存在公平分配策略和偏心分配策略。公平分配策略具体指:系统资源分配中不偏向任何数据源,即根据所有所述数据源的访问次数和总连接数,按比例为所有所述连接池分配最大连接数。偏心分配策略的具体内容参见图2,图2示出了本发明实施例提供的配置连接池的最大连接数的流程图,包括以下步骤:

步骤s201:获取所有所述连接池中预设的特殊连接池当前的第一最大连接数。

需要说明的是,预设设置需要在系统资源分配中需要偏向的特殊数据源,该特殊数据源对应的连接池为特殊连接池。在为各个连接池分配最大连接数时,先获取所述特殊连接池当前的第一最大连接数。

步骤s202:将预设的总连接数按比例分配给每一所述连接池,得到每一所述连接池的第二最大连接数。

在具体实现步骤s202的过程中,将所述总连接数按比例为每一所述连接池分配第二最大连接数后,确定所述特殊连接池的第一最大连接数是否大于所述特殊连接池的第二最大连接数,即确定所述特殊连接池的最大连接数是否减少。

若所述特殊连接池的第一最大连接数大于第二最大连接数,即所述特殊连接池的最大连接数没有减少,将每一所述连接池的第二最大连接数作为每一所述连接池最新的最大连接数。

若所述特殊连接池的第一最大连接数小于第二最大连接数,即所述特殊连接池的最大连接数减少。将所述特殊连接池的第一最大连接数作为所述特殊连接池最新的最大连接数,以及将所述总连接数与第一最大连接数的差值按比例分配给其余所述连接池,得到其余所述连接池最新的最大连接数。

步骤s203:确定所述特殊连接池的第一最大连接数是否大于所述特殊连接池的第二最大连接数,若是,执行步骤s204,若否,执行步骤s205。

步骤s204:将所述特殊连接池的第一最大连接数作为所述特殊连接池最新的最大连接数,以及将所述总连接数与第一最大连接数的差值按比例分配给其余所述连接池,得到其余所述连接池最新的最大连接数。

步骤s205:将每一所述连接池的第二最大连接数作为每一所述连接池最新的最大连接数。

在本发明实施例中,利用偏心分配策略,根据用户需求设置需要特殊照顾的数据源。在分配最大连接数的时候,保持特殊连接池的最大连接数不被减少,以满足用户需求,提高用户体验。

为更好解释说明上述本发明实施例图1和图2中的内容,通过图3示出的内容进行举例说明,在所述图3中包含3个连接池。参见图3,示出了本发明实施例提供的一种连接池调度方法的流程示意图,包括以下步骤:

步骤s301:判断中央处理器(centralprocessingunit,cpu)和内存的使用率是否大于80%,若是,执行步骤s302,若否,执行步骤s303。

步骤s302:将三个连接池的配置时间减少50%。

步骤s303:根据第一预设时间内每个连接池的访问次数,将总连接数按比例分配每个连接池的最大连接数和最小连接数。

步骤s304:判断数据库查询超时次数是否超过两次,若是,执行步骤s305。

步骤s305:将数据库超时时间增加20%。

需要说明的是,图3中各个步骤的执行原理可参见上述图1和图2各个步骤对应的内容,在此不再进行赘述。

在本发明实施例中,当处理器使用率和内存使用率都大于80%时,将多个连接池的配置时间减少50%。当处理器使用率和内存使用率都小于80%时,确定在第一预设时间内每一连接池对应的数据源的访问次数,基于所有数据源的访问次数,配置每一连接池的最大连接数和最小连接数。在第二预设时间内,若数据库连接超时的次数大于2次,将数据库对应的超时时间增加20%,提高后台系统的系统资源利用率。

与上述本发明实施例提供的一种连接池调度方法相对应,参见图4,本发明实施例还提供一种连接池调度装置的结构框图,所述装置包括:判断单元401、减少单元402、确定单元403、配置单元404和增加单元405。

判断单元401,用于判断所述处理器使用率和内存使用率是否都大于阈值,若是,执行减少单元402,若否,执行确定单元403。

所述减少单元402,用于减少所述设备对应的多个连接池的配置时间,得到新配置时间。

在具体实现中,所述减少单元402具体用于:针对所述设备对应的每一连接池,分别减少所述连接池对应的最大等待时间、查询空闲时间和连接空闲时间,得到新最大等待时间、新查询空闲时间和新连接空闲时间。

更进一步的,所述减少单元402具体用于:确定所述多个连接池的配置时间的减少百分比,根据所述减少百分比,减少每个所述连接池的配置时间,得到新配置时间。

所述确定单元403,用于确定在第一预设时间内每一所述连接池对应的数据源的访问次数。

配置单元404,用于基于所有所述数据源的访问次数,配置每一所述连接池的最大连接数和最小连接数。

增加单元405,用于在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加所述数据库对应的超时时间,得到新超时时间。

在本发明实施例中,当处理器使用率和内存使用率都大于阈值时,减少多个连接池的配置时间。当处理器使用率和内存使用率都小于阈值时,确定在第一预设时间内每一连接池对应的数据源的访问次数,基于所有数据源的访问次数,配置每一连接池的最大连接数和最小连接数。在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加数据库对应的超时时间,提高后台系统的系统资源利用率。

优选的,结合图4,参见图5,示出了本发明实施例提供的一种连接池调度装置的结构框图,所述配置单元404包括:

第一分配模块4041,用于根据每一所述数据源的访问次数,将预设的总连接数按比例分配给每一所述连接池,作为每一所述连接池的最大连接数。

第二分配模块4042,用于针对每一所述连接池,将所述连接池的最小连接数设置为所述最大连接数的预设百分比

优选的,结合图5,所述第一分配模块4041包括:

获取子模块,用于获取所有所述连接池中预设的特殊连接池当前的第一最大连接数。

第一分配子模块,用于将预设的总连接数按比例分配给每一所述连接池,得到每一所述连接池的第二最大连接数。

确定子模块,用于确定所述特殊连接池的第一最大连接数是否大于所述特殊连接池的第二最大连接数,若是,执行第二分配子模块,若否,将每一所述连接池的第二最大连接数作为每一所述连接池最新的最大连接数。

所述第二分配子模块,用于将所述特殊连接池的第一最大连接数作为所述特殊连接池最新的最大连接数,以及将所述总连接数与第一最大连接数的差值按比例分配给其余所述连接池,得到其余所述连接池最新的最大连接数。

在本发明实施例中,利用偏心分配策略,根据用户需求设置需要特殊照顾的数据源。在分配最大连接数的时候,保持特殊连接池的最大连接数不被减少,以满足用户需求,提高用户体验。

综上所述,本发明实施例提供一种连接池调度方法及装置,该方法为:判断用于执行连接池调度的设备对应的处理器使用率和内存使用率是否都大于阈值;若是,减少多个连接池的配置时间,得到新配置时间;若否,确定在第一预设时间内每一连接池对应的数据源的访问次数;基于所有数据源的访问次数,配置每一连接池的最大连接数和最小连接数;在第二预设时间内,若数据库连接超时的次数大于次数阈值,增加数据库对应的超时时间,得到新超时时间。在本方案中,通过处理器和内存的使用情况,以及根据向数据源请求获取数据的频率,调整每个连接池的配置信息,提高后台系统的系统资源利用率。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1