一种调整线程池的方法、装置、存储介质和计算机设备制造方法及图纸

技术编号:19542984 阅读:20 留言:0更新日期:2018-11-24 20:29
本发明专利技术公开了一种调整线程池的方法、装置、存储介质和计算机设备,能够动态调整线程池的大小。所述方法包括:根据定期获取的负载信息计算出目标线程数;根据所述目标线程数调整所述线程池的大小,采用本发明专利技术实施例,能够动态的调整线程池的大小,合理使用服务器资源,高效执行线程。

A Method, Device, Storage Medium and Computer Equipment for Adjusting Thread Pool

The invention discloses a method, device, storage medium and computer equipment for adjusting thread pool, which can dynamically adjust the size of thread pool. The method includes: calculating the number of target threads according to the load information acquired regularly; adjusting the size of the thread pool according to the number of target threads; adopting the embodiment of the present invention, the size of the thread pool can be dynamically adjusted, the server resources can be reasonably used, and the threads can be executed efficiently.

【技术实现步骤摘要】
一种调整线程池的方法、装置、存储介质和计算机设备
本专利技术涉及通信技术,尤指一种调整线程池的方法、装置、存储介质和计算机设备。
技术介绍
随着技术的发展,数据中心的基础设施特别是服务器,规模已经达到万级数量。目前的服务器监控平台中,对于万级数量的服务器进行监控,技术底层的实现往往采用多线程并行监控,大量的线程将在相对很少的CPU和内存资源上发生竞争,这不仅会导致更高的内存使用量,而且还可能耗尽资源。如果线程池过小,那么将导致许多空闲处理器无法执行任务,降低了系统吞吐率,如何找出最佳线程池大小,从而最大化的利用服务端资源是急需解决的问题。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种调整线程池的方法、装置、存储介质和计算机设备,能够找出目标线程池大小,从而最大化的利用服务端资源。为了达到本专利技术目的,本专利技术提供了一种调整线程池的方法,所述方法包括:根据定期获取的负载信息计算出目标线程数;根据所述目标线程数调整所述线程池的大小。进一步地,所述根据所述目标线程数调整所述线程池的大小包括:所述目标线程数与所述负载信息成正相关。进一步地,所述负载信息包括:服务器资源信息和/或线程池的运行状况;所述服务器资源信息包括以下至少之一:CPU可用百分比、内存可用百分比和CPU核数;所述线程池的运行状况包括:线程等待时间和CPU执行时间。进一步地,当所述负载信息包括服务器资源信息和线程池的运行状况时,采用下式计算出目标线程数:其中,f为目标线程数,a为CPU执行时间,b为线程等待时间,c为CPU可用百分比,d为内存可用百分比,e为CPU核数。为了达到本专利技术目的,本专利技术还提供了一种调整线程池的装置,其特征在于,所述装置包括计算模块和调整模块,其中:所述计算模块,用于根据定期获取的负载信息计算出目标线程数;所述调整模块,用于根据所述目标线程数调整所述线程池的大小。进一步地,所述调整模块据所述目标线程数调整所述线程池的大小包括:所述目标线程数与所述负载信息成正相关。进一步地,所述负载信息包括:服务器资源信息和/或线程池的运行状况;所述服务器资源信息包括以下至少之一:CPU可用百分比、内存可用百分比和CPU核数;所述线程池的运行状况包括:线程等待时间和CPU执行时间。进一步地,当所述负载信息包括服务器资源信息和线程池的运行状况时,所述计算模块采用下式计算出目标线程数:其中,f为目标线程数,a为CPU执行时间,b为线程等待时间,c为CPU可用百分比,d为内存可用百分比,e为CPU核数。为了达到本专利技术目的,本专利技术还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实上述方法的步骤。为了达到本专利技术目的,本专利技术还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。与现有技术相比,本专利技术包括根据定期获取的负载信息计算出目标线程数;根据所述目标线程数调整所述线程池的大小。能够动态的调整线程池的大小,合理使用服务器资源,高效执行线程。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为本专利技术实施例一的调整线程池的方法的流程图;图2为本专利技术实施例二的调整线程池的方法的另一种流程图;图3为本专利技术实施例三的调整线程池的装置的结构示意图;图4为本专利技术实施例三的计算机设备的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。实施例一本实施例提供了一种调整线程池的方法,如图1所示,该所述方法包括S11-S12:S11、根据定期获取的负载信息计算出目标线程数;S12、根据所述目标线程数调整所述线程池的大小。本专利技术实施例中,定期调整线程池的大小。能够动态的调整线程池的大小,合理使用服务器资源,高效执行线程。在一个可选实施例中,所述根据所述目标线程数调整所述线程池的大小包括:所述目标线程数与所述负载信息成正相关。在本实施例中,所述负载信息包括:服务器资源信息和/或线程池的运行状况;所述服务器资源信息包括以下至少之一:CPU可用百分比、内存可用百分比和CPU核数;所述线程池的运行状况包括:线程等待时间和CPU执行时间。在一个可选实施例中,线程等待时间,可以是计算多个线程等待时间的平均值,或者线程等待时间是多个线程等待时间中的最大值;CPU执行时间指从上一次开始执行,到此次获取的时间;在一个可选实施例中,当负载信息仅包含CPU可用百分比、内存可用百分比和CPU核数时,能够合理使用CPU和内存资源;在一个可选实施例中,当负载信息仅包含CPU可用百分比、内存可用百分比、CPU核数、线程等待时间和CPU执行时间时,依据上述数据信息调整线程池的大小,为最优的。在本实施例中,线程等待时间和CPU执行时间的获取包括,比如:java语言提供的jconsole、jvisualvm工具或者java本身提供的接口都能测试出来。CPU可用百分比是指可以使用的空闲CPU与总CPU之间的比值;内存可用百分比是指可以使用的空闲内存与总内存之间的比值。在一个可选实施例中,当所述负载信息包括服务器资源信息和线程池的运行状况时,采用下式计算出目标线程数:其中,f为目标线程数,a为CPU执行时间,b为线程等待时间,c为CPU可用百分比,d为内存可用百分比,e为CPU核数。如果目标线程数的计算结果是小数默认四舍五入取整。本专利技术实施例中,根据定期获取的负载信息计算出目标线程数;根据所述目标线程数调整所述线程池的大小。能够动态的调整线程池的大小,合理使用服务器资源,高效执行线程。实施例二本实施例对上述实施例方法进行具体描述。所述方法实施过程可由硬件分析器和线程分析器获取计算目标线程数的负载信息,当所述服务器资源信息包括CPU可用百分比、内存可用百分比和CPU核数,所述线程池的运行状况包括线程等待时间和CPU执行时间时,获取的调整结果为最佳线程,具体实施过程如下:(1)硬件分析器定时分析服务器CPU的核数、可使用的百分比、内存可用的百分比;(2)线程分析器定时分析当前线程池执行过程中,线程的等待时间、cpu执行时间;(3)通过以下公式得出最佳线程数:(4)根据最佳线程数,调整线程池的大小。如图2所示,为本实施例流程图。因为线程池的大小及队列大小非常影响系统的负载,并不是线程池越大越好,它在某一个数值的时候是最优的,能合理的利用CPU,压测的目的就是调出这个数值,达到最优。本专利技术公开了一种基于CPU核心数、内存大小、网络IO等不同的指标以及当前业务下线程执行情况动态的调整线程池的大本文档来自技高网...

【技术保护点】
1.一种调整线程池的方法,其特征在于,所述方法包括:根据定期获取的负载信息计算出目标线程数;根据所述目标线程数调整所述线程池的大小。

【技术特征摘要】
1.一种调整线程池的方法,其特征在于,所述方法包括:根据定期获取的负载信息计算出目标线程数;根据所述目标线程数调整所述线程池的大小。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标线程数调整所述线程池的大小包括:所述目标线程数与所述负载信息成正相关。3.根据权利要求1或2所述的方法,其特征在于,所述负载信息包括:服务器资源信息和/或线程池的运行状况;所述服务器资源信息包括以下至少之一:CPU可用百分比、内存可用百分比和CPU核数;所述线程池的运行状况包括:线程等待时间和CPU执行时间。4.根据权利要求3所述的方法,其特征在于,当所述负载信息包括服务器资源信息和线程池的运行状况时,采用下式计算出目标线程数:其中,f为目标线程数,a为CPU执行时间,b为线程等待时间,c为CPU可用百分比,d为内存可用百分比,e为CPU核数。5.一种调整线程池的装置,其特征在于,所述装置包括计算模块和调整模块,其中:所述计算模块,用于根据定期获取的负载信息计算出目标线程数;所述调整模块,用于根据所述目标线程数调整所述线程池的大小...

【专利技术属性】
技术研发人员:贾伟郭锋
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1