线程池的调整方法、装置、存储介质和电子设备与流程

文档序号:17925537发布日期:2019-06-15 00:23阅读:143来源:国知局
线程池的调整方法、装置、存储介质和电子设备与流程

本发明公开涉及数据处理领域,具体涉及一种线程池的调整方法、装置、存储介质和电子设备。



背景技术:

在soa(service-orientedarchitecture,面向服务架构)服务开发框架实现过程或网站后台开发中,服务端通常采用线程池技术来实现客户端请求的逻辑处理任务,线程池技术可以充分利用多核cpu(centralprocessingunit,中央处理器)的性能,并且,线程的复用可以避免频繁创建和销毁带来的性能损耗问题。对线程池的合理利用使得研发人员可以更容易地开发高性能、高吞吐处理能力的服务。

但是,在不同应用场景、不同业务需求以及不同服务器规格因素下,服务端线程池大小的设计会比较复杂,工程师需要经过大量测试才能设计出准确合理的线程池,因为合理的线程池大小才能让服务端具备最大的吞吐量处理能力,过大或过小的线程池都会影响服务性能。

现有的技术主要依靠工程师事先进行压力测试,通过压力测试来寻找最佳的线程池大小。具体而言,工程师通过不断的调整服务端线程池大小,对比压力测试结果,当服务端达到最大性能时,判定当前的线程池大小为最佳配置。

但是,压力测试环境不代表实际环境,因而测试结果存在误差,这导致设计出的线程池大小也会存在误差;并且,当服务端版本发生变化时,工程师需要重新测试来调整线程池大小,这使得线程池的设计效率低、且成本高。



技术实现要素:

有鉴于此,本发明实施例提供一种线程池的调整方法、装置、存储介质和电子设备,以解决现有技术中通过工程师在压力测试环境下设计线程池大小存在的误差较大且效率较低的问题。

根据本发明实施例的第一方面,提供一种线程池的调整方法,该方法包括:响应于预定触发条件被触发,根据预定调整规则调整线程池的当前线程数量;确定执行调整操作后的预定时间内的系统性能变化;响应于系统性能变化为调整后的系统性能优于调整前的系统性能,确定所述调整操作有效。

根据本发明实施例的第二方面,提供一种线程池的调整装置,该装置包括:调整单元,用于响应于预定触发条件被触发,根据预定调整规则调整线程池的当前线程数量;性能确定单元,用于确定执行调整操作后的预定时间内的系统性能变化;操作确定单元,用于响应于系统性能变化为调整后的系统性能优于调整前的系统性能,则确定所述调整操作有效。

根据本发明实施例的第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如第一方面所述的方法。

根据本发明实施例的第四方面,提供一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面所述的方法。

本发明实施例通过在用于触发调整线程池数量操作的预定触发条件被触发时,根据预定的调整规则来调整当前线程池的线程数量,并通过系统性能变化来判断调整操作是否有效,当调整后的系统性能更优时,表示该调整操作是有效的,也就是说调整后的线程池大小是合适的,相比于现有技术中的通过工程师在压力测试环境下来设计线程池大小,本发明实施例由于无需人工操作并且调整操作是在实际系统环境下完成,因而本发明实施例提供的线程池调整方案,相对于现有技术而言,误差较小,效率较高。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是根据本发明实施例的线程池调整方法的流程图;

图2是根据本发明实施例的线程池调整方法的具体流程图;

图3是根据本发明实施例的线程池调整装置的结构框图;

图4根据本发明实施例的调整单元301的结构框图;

图5-8是根据本发明实施例的线程池调整装置的应用场景结果曲线图;

图9是根据明实施例的电子设备的示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本发明实施例提供了一种线程池的调整方法,图1是该方法的流程图,如图1所示,该方法包括:

步骤101,响应于预定触发条件被触发,根据预定调整规则调整线程池的当前线程数量;

步骤102,确定执行调整操作后的预定时间内的系统性能变化;

步骤103,响应于系统性能变化为调整后的系统性能优于调整前的系统性能,则确定该调整操作有效。

当用于触发调整线程池数量(或称为线程池大小)操作的预定触发条件被触发时,根据预定的调整规则来调整当前线程池的线程数量,并通过系统性能变化来判断调整操作是否有效,当调整后的系统性能更优时,表示该调整操作是有效的,也就是说调整后的线程池大小是合适的,相比于现有技术中的通过工程师在压力测试环境下来设计线程池大小,本发明实施例由于无需人工操作并且调整操作是在实际系统环境下完成,因而本发明实施例提供的线程池调整方案,相对于现有技术而言,误差较小,效率较高。

这里的预定触发条件包括数量增加触发条件和数量减少触发条件。

在实际操作中,由于cpu负载(load)随时在变化,因而,可以周期性(例如,10分钟)触发预定触发条件,以周期性执行调整线程池线程数量的操作,这样,线程池大小可以随着cpu负载变化而尽快调整,以此提高系统性能。

具体而言,步骤101中的根据预定调整规则调整线程池的当前线程数量包括:首先,根据数量增加触发条件判断是否增加当前线程数量;当判断结果为增加当前线程数量时,则增加当前线程数量;否则,根据数量减少触发条件判断是否减少当前线程数量;当判断结果为减少当前线程数量时,则减少当前线程数量。

在本发明实施例中,用于触发调整线程数量操作的预定触发条件可以由如下参数决定:用户模式下cpu占用率(可以称为cpu合计占用率)、内核模式下cpu占用率(可以称为cpu(sys)合计占用率)和cpu负载情况(例如,cpu运行队列数量)。也就是说,依据这三个参数来触发调整操作。

具体地,数量增加触发条件可以包括:用户模式下cpu占用率小于等于第一预定数值(例如,100%)、内核模式下cpu占用率小于等于第二预定数值(例如,30%)、cpu运行队列小于预定数量(例如,3)。当满足这三个方面中的至少一个时,表示数量增加触发条件满足,此时可以执行增加当前线程数量的操作,之后执行步骤101-步骤103。当这三个方面都不满足时,表示数量增加触发条件不满足,此时,判断数量减少触发条件是否满足。

数量减少触发条件可以包括:用户模式下cpu占用率大于第一预定数值(例如,100%)、内核模式下cpu占用率大于第二预定数值(例如,30%)、cpu运行队列大于等于预定数量(例如,3)。当满足这三个方面中的至少一个时,表示数量减少触发条件满足,此时可以执行减少当前线程数量的操作,之后执行步骤101-步骤103。当这三个方面都不满足时,表示数量减少触发条件不满足,此时,退出整个调整操作。在预定时间后,例如,10分钟后,再次执行步骤101。

在实际操作中,调整的线程数量可以依据当前线程数量而定,例如,调整的线程数量为当前线程数量的1%,另外,调整后的线程数量在预定范围内,该预定范围可以依据实际系统而定,例如,范围区间为[10,3000]。

在具体实施过程中,也可以先执行数量减少判断操作,在满足数量减少触发条件时,执行减少当前线程数量的操作,之后执行步骤101-步骤103。在不满足数量减少触发条件时,执行数量增加判断操作,在满足数量增加触发条件时,执行增加当前线程数量的操作,之后执行步骤101-步骤103。在不满足数量增加触发条件时,退出整个调整操作,之后在预定时间后,再次执行步骤101。

在步骤102中,确定执行调整操作后的预定时间内的系统性能变化,该步骤主要用于根据预定时间内的系统性能变化判断该调整操作是否有效,这里的预定时间可以依据实际操作而定,例如,1分钟。在步骤101依据触发结果进行调整操作的“尝试”时,步骤102确定“尝试”后的系统性能变化,当步骤103中的确定结果为系统性能提高时,则确定该“尝试”是有效的,即,调整操作是合理的,此时可以继续执行该调整操作,否则,“尝试”失败,此时使调整操作无效,即,不执行该“尝试”,并退出该调整操作。在10分钟后或者其他预定时间后,再次执行步骤101。

这里的系统性能可以是系统吞吐量和/或qps(queriespersecond,每秒查询率)。

图2是根据本发明实施例的线程池调整方法的具体流程图,如图2所示,soa主调服务是client(客户端)角色,soa被调服务是server(服务端)角色。

在本实例中,线程数量增加触发条件包括:(1)调整后的线程数不超出规定的范围区间[10,3000];(2)cpu合计占用率不超过100%;(3)cpu(sys)合计占用率不超过30%;(4)cpu运行队列<3。

线程数量减少触发条件包括:(1)调整后的线程数不超出规定的范围区间[10,3000];(2)cpu合计占用率超过100%;(3)cpu(sys)合计占用率超过30%;(4)cpu运行队列>=3。

如图2所示,该流程包括:

步骤201,周期性尝试重新调整服务端线程池大小,当线程数量增加触发条件满足时,执行步骤202-208,否则,当线程数量减少触发条件满足时,执行步骤209-215,当这两个触发条件都不满足时,执行步骤216-217;

步骤202,尝试调高线程池数量操作;

步骤203,线程池数量增加1%,运行1分钟;

步骤204,检测1分钟内的服务端吞吐量;

步骤205,当吞吐量提高时,表示调整有效;

步骤206,继续执行调整,并退出整个调整流程;

步骤207,当吞吐量未提高或者降低时,表示调整无效;

步骤208,回滚调整(即,不执行调整操作),并退出整个调整流程;

步骤209,尝试调低线程池数量操作;

步骤210,线程池数量减少1%,运行1分钟;

步骤211,检测1分钟内的服务端吞吐量;

步骤212,当吞吐量提高时,表示调整有效;

步骤213,继续执行调整,并退出整个调整流程;

步骤214,当吞吐量未提高或者降低时,表示调整无效;

步骤215,回滚调整(即,不执行调整操作),并退出整个调整流程;

步骤216,当上述两个触发条件都不满足时,表示两次“尝试”都失败;

步骤217,退出整个调整流程。

这里的系统吞吐量可以通过如下公式表示:

系统吞吐量=(1000ms/单次请求处理耗时)ⅹ线程数。

由以上描述可知,系统可以每隔10分钟检查下触发条件,如果条件成立,则开始尝试调整线程池大小。在本例中,先检查线程数量增加触发条件,如果条件满足,就开始进行调高线程数的“尝试”,即,将线程数增加1%,运行1分钟,之后检查调整结果;当线程数量增加触发条件不满足时,检查线程数量减少触发条件,如果都不满足,则此次调整操作退出,等待下次时间窗口。

这里检测调整结果具体是依据系统吞吐量而定的,当调整后的系统吞吐量大于调整前的系统吞吐量时,表示此次调整是有效的,之后继续执行该调整。

本发明实施例提供的线程池大小调整操作在实际系统环境下完成,且无需工程师参与,因而本发明实施例提供的线程池调整方案,相对于现有技术而言,误差较小,效率较高。

本发明实施例还提供一种线程池的调整装置,图3是该装置的结构框图,如图3所示,该装置包括:

调整单元301,用于响应于判断结果为执行调整操作,根据预定调整规则调整所述线程池的当前线程数量;

性能确定单元302,用于确定执行调整操作后的预定时间内的系统性能变化;

操作确定单元303,用于响应于系统性能变化为调整后的系统性能优于调整前的系统性能,则确定所述调整操作有效。

当用于触发调整线程池数量(或称为线程池大小)操作的预定触发条件被触发时,调整单元301根据预定的调整规则来调整当前线程池的线程数量,操作确定单元303通过性能确定单元302确定的系统性能变化来判断调整操作是否有效,当调整后的系统性能更优时,表示该调整操作是有效的,也就是说调整后的线程池大小是合适的,相比于现有技术中的通过工程师在压力测试环境下来设计线程池大小,本发明实施例由于无需人工操作并且调整操作是在实际系统环境下完成,因而本发明实施例提供的线程池调整方案,相对于现有技术而言,误差较小,效率较高。

这里的预定触发条件包括数量增加触发条件和数量减少触发条件。

在实际操作中,由于cpu负载(load)随时在变化,因而,可以周期性(例如,10分钟)触发预定触发条件,以周期性执行调整线程池线程数量的操作。这样,线程池数量可以随着cpu负载变化而尽快调整,以此提高系统性能。

如图4所示,调整单元301包括:第一判断模块3011、第一调整模块3012、第二判断模块3013和第二调整模块3014,其中:

第一判断模块3011,用于根据数量增加触发条件判断是否增加当前线程数量;

第一调整模块3012,用于响应于判断结果为增加当前线程数量,则增加当前线程数量;

第二判断模块3013,用于根据线程数量减少触发条件判断是否减少当前线程数量;

第二调整模块3014,用于响应于判断结果为减少当前线程数量,则减少当前线程数量。

在本发明实施例中,预定触发条件可以由如下参数决定:用户模式下cpu占用率(可以称为cpu合计占用率)、内核模式下cpu占用率(可以称为cpu(sys)合计占用率)和cpu负载情况(例如,cpu运行队列数量)。也就是说,依据这三个参数来触发调整操作。

具体地,数量增加触发条件包括:用户模式下cpu占用率小于等于第一预定数值(例如,100%)、内核模式下cpu占用率小于等于第二预定数值(例如,30%)、cpu运行队列小于预定数量(例如,3)。

数量减少触发条件包括:用户模式下cpu占用率大于第一预定数值(例如,100%)、内核模式下cpu占用率大于第二预定数值(例如,30%)、cpu运行队列大于等于预定数量(例如,3)。

在实际操作中,调整的线程数量可以依据当前线程数量而定,例如,调整的线程数量为当前线程数量的1%,另外,调整后的线程数量在预定范围内,该预定范围可以依据实际系统而定,例如,范围区间为[10,3000]。

在具体实施过程中,第一判断模块3011和第一调整模块3012的执行、第二判断模块3013和第二调整模块3014的执行可以根据实际情况来确定它们的执行顺序,本发明不限于此。

性能确定单元302确定调整操作后的预定时间内的系统性能变化,其主要用于根据预定时间内的系统性能变化判断第一调整模块3022或者第二调整模块3024的调整操作是否有效,这里的预定时间可以依据实际操作而定,例如,1分钟。当确定结果为系统性能提高时,则操作确定单元303确定该调整操作是有效的,此时可以继续执行该调整操作,否则,操作确定单元303使调整操作无效,此时退出该调整操作。在10分钟后或者其他预定时间后,再次触发调整操作。

图5-8是根据本发明实施例的线程池调整装置的应用场景结果曲线图,图5-8分别示出了4种业务场景,其中,图5为模拟轻量业务(服务处理耗时10ms)的曲线图,图6为模拟轻量业务(服务处理耗时50ms)的曲线图,图7为模拟重业务(服务处理耗时100ms)的曲线图,图8为模拟重业务(服务处理耗和300ms)的曲线图。如图5-8所示,曲线1表示服务吞吐量,曲线2表示线程数量,曲线3表示pending(等待)队列请求数量,横坐标表示时间,纵坐标表示qps(queriespersecond,每秒查询率),在这4中业务场景中,系统性能变化通过qps来表示,也就是说,调整线程池大小的操作是否有效可以通过qps的变化来确定。

这里的4种业务场景分别按照相同的步骤来进行,步骤分别是:

步骤1:t1(第0min):client并发数为1,持续运行5min;

步骤2:t2(第5min):client并发数瞬间加至200,持续运行10min;

步骤3:t3(第15min):client并发数瞬间加至600,持续运行10min;

步骤4:t4(第25min):client并发数瞬间加至1000,持续运行10min;

步骤5:t5(第35min):client并发数瞬间加至1400,持续运行10min。

由图5所示曲线可以看出,在t2时刻,探测pending队列有5%的少量积压请求未被处理(即,表示cpu运行队列小于预定数量),线程池调整装置将线程数量由100调整到150;t3时刻,探测pending队列有25%的积压请求,线程池调整装置又将线程数量逐步由150调整到400;t4和t5时刻,瞬间增量多出的400个客户端并发建立新连接,系统性能有所下降,影响了qps,随后恢复平稳。最后9:25~9:30时间段内,探测到pending队列有积压现象,线程池调整装置尝试调高线程数量,但是失败了。

由图6所示曲线可以看出,在t2、t3、t4、t5时刻,客户端并发在增加,探测到pending队列有积压请求,线程池调整装置增加了线程数量,随后消除了积压,qps平稳。

由图7所示曲线可以看出,在t2、t3、t4、t5时刻,客户端并发在增加,探测到pending队列有积压请求,线程池调整装置增加了线程数量,随后消除了积压,qps平稳。

由图8所示曲线可以看出,在t2、t3、t4、t5时刻,客户端并发在增加,探测到pending队列有积压请求,线程池调整装置增加了线程数量,随后消除了积压,qps平稳。

本发明实施例通过探测服务端的cpu%(用户模式下执行的程序所使用的cpu百分比)、cpu(sys)%(内核模式下执行的程序所使用的cpu百分比)、cpuload(cpu负载)来决定是否需要动态增加或减少线程数量,以使新线程数量可以提高服务端的吞吐量,整个调整过程可以是周期性的,这样可以尽可能的让硬件资源得到充分利用。

图9是本发明实施例的电子设备的示意图。图9所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器901和存储器902。处理器901和存储器902通过总线903连接。存储器902适于存储处理器901可执行的一条或多条指令或程序。该一条或多条指令或程序被处理器901执行以实现如下步骤:

响应于预定触发条件被触发,根据预定调整规则调整线程池的当前线程数量;

确定执行调整操作后的预定时间内的系统性能变化;

响应于系统性能变化为调整后的系统性能优于调整前的系统性能,确定所述调整操作有效。

所述预定触发条件包括数量增加触发条件和数量减少触发条件。

根据预定调整规则调整线程池的当前线程数量包括:根据所述数量增加触发条件判断是否增加当前线程数量;响应于判断结果为增加当前线程数量,则增加当前线程数量;否则,根据所述数量减少触发条件判断是否减少当前线程数量;响应于判断结果为减少当前线程数量,则减少当前线程数量。

根据预定调整规则调整当前线程数量还包括以下至少之一:根据所述当前线程数量确定调整的线程数量;调整后的线程数量在预定范围内。

所述数量增加触发条件包括以下至少之一:用户模式下cpu占用率小于等于第一预定数值、内核模式下cpu占用率小于等于第二预定数值、cpu运行队列小于预定数量。

所述数量减少触发条件包括以下至少之一:用户模式下cpu占用率大于第一预定数值、内核模式下cpu占用率大于第二预定数值、cpu运行队列大于等于预定数量。

所述系统性能包括如下之一:每秒查询率、系统吞吐量。

上述步骤还包括:响应于系统性能变化为调整后的系统性能未优于调整前的系统性能,使所述调整操作无效。

上述处理器901可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器901通过执行存储器902所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线903将上述多个组件连接在一起,同时将上述组件连接到显示控制器904和显示装置以及输入/输出(i/o)装置905。输入/输出(i/o)装置905可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(i/o)装置905通过输入/输出(i/o)控制器906与系统相连。

其中,存储器902可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。

综上所述,当用于触发调整线程池数量(或称为线程池大小)操作的预定触发条件被触发时,本发明实施例根据预定的调整规则来调整当前线程池的线程数量,并通过系统性能变化来判断调整操作是否有效,当调整后的系统性能更优时,表示该调整操作是有效的,也就是说调整后的线程池大小是合适的,本发明实施例通过采用动态调整线程池大小技术,使得工程师能更方便的开发出高性能的服务端软件,提高了服务器资源的使用率,降低了服务成本。

上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。

同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实现方式、完全软件实现方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实现方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++、php、python等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本发明实施例公开了a1、一种线程池的调整方法,其中,所述方法包括:

响应于预定触发条件被触发,根据预定调整规则调整线程池的当前线程数量;

确定执行调整操作后的预定时间内的系统性能变化;

响应于系统性能变化为调整后的系统性能优于调整前的系统性能,确定所述调整操作有效。

a2、根据权利要求a1所述的线程池的调整方法,其中,所述预定触发条件包括数量增加触发条件和数量减少触发条件。

a3、根据权利要求a2所述的线程池的调整方法,其中,根据预定调整规则调整线程池的当前线程数量包括:

根据所述数量增加触发条件判断是否增加当前线程数量;

响应于判断结果为增加当前线程数量,则增加当前线程数量;否则,

根据所述数量减少触发条件判断是否减少当前线程数量;

响应于判断结果为减少当前线程数量,则减少当前线程数量。

a4、根据权利要求a1所述的线程池的调整方法,其中,根据预定调整规则调整当前线程数量还包括以下至少之一:

根据所述当前线程数量确定调整的线程数量;

调整后的线程数量在预定范围内。

a5、根据权利要求a3所述的线程池的调整方法,其中,所述数量增加触发条件包括以下至少之一:

用户模式下cpu占用率小于等于第一预定数值、内核模式下cpu占用率小于等于第二预定数值、cpu运行队列小于预定数量。

a6、根据权利要求a3所述的线程池的调整方法,其中,所述数量减少触发条件包括以下至少之一:

用户模式下cpu占用率大于第一预定数值、内核模式下cpu占用率大于第二预定数值、cpu运行队列大于等于预定数量。

a7、根据权利要求a1所述的线程池的调整方法,其中,所述系统性能包括如下之一:

每秒查询率、系统吞吐量。

a8、根据权利要求a1所述的线程池的调整方法,其中,所述方法还包括:

响应于系统性能变化为调整后的系统性能未优于调整前的系统性能,使所述调整操作无效。

本发明实施例公开了b1、一种线程池的调整装置,其中,所述装置包括:

调整单元,用于响应于预定触发条件被触发,根据预定调整规则调整线程池的当前线程数量;

性能确定单元,用于确定执行调整操作后的预定时间内的系统性能变化;

操作确定单元,用于响应于系统性能变化为调整后的系统性能优于调整前的系统性能,则确定所述调整操作有效。

b2、根据权利要求b1所述的线程池的调整装置,其中,所述预定触发条件包括数量增加触发条件和数量减少触发条件。

b3、根据权利要求b2所述的线程池的调整装置,其中,所述调整单元包括:

第一判断模块,用于根据所述数量增加触发条件判断是否增加当前线程数量;

第一调整模块,用于响应于判断结果为增加当前线程数量,则增加当前线程数量;

第二判断模块,用于根据所述线程数量减少触发条件判断是否减少当前线程数量;

第二调整模块,用于响应于判断结果为减少当前线程数量,则减少当前线程数量。

b4、根据权利要求b1所述的线程池的调整装置,其中,所述调整单元还用于执行以下至少之一:

根据所述当前线程数量确定调整的线程数量;

调整后的线程数量在预定范围内。

b5、根据权利要求b3所述的线程池的调整装置,其中,所述第一判断模块中的数量增加触发条件包括以下至少之一:

用户模式下cpu占用率小于等于第一预定数值、内核模式下cpu占用率小于等于第二预定数值、cpu运行队列小于预定数量。

b6、根据权利要求b3所述的线程池的调整装置,其中,所述第二判断模块中的数量减少触发条件包括以下至少之一:

用户模式下cpu占用率大于第一预定数值、内核模式下cpu占用率大于第二预定数值、cpu运行队列大于等于预定数量。

b7、根据权利要求b1所述的线程池的调整装置,其中,所述性能确定单元确定的系统性能包括如下之一:

每秒查询率、系统吞吐量。

b8、根据权利要求b1所述的线程池的调整装置,其中,所述操作确定单元还用于:

响应于系统性能变化为调整后的系统性能未优于调整前的系统性能,使所述调整操作无效。

本发明实施例公开了c1、一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如权利要求a1-a8中任一项所述的方法。

本发明实施例公开了d1、一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求a1-a8中任一项所述的方法。

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