CN115016916A - 一种线程池调度方法、系统、设备及可读存储介质 - Google Patents
一种线程池调度方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115016916A CN115016916A CN202210760753.7A CN202210760753A CN115016916A CN 115016916 A CN115016916 A CN 115016916A CN 202210760753 A CN202210760753 A CN 202210760753A CN 115016916 A CN115016916 A CN 115016916A
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- task
- thread pool
- pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012549 training Methods 0.000 claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 24
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000002922 simulated annealing Methods 0.000 claims abstract description 23
- 238000007781 pre-processing Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 13
- 238000007635 classification algorithm Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012512 characterization method Methods 0.000 claims 1
- 230000006978 adaptation Effects 0.000 abstract description 3
- 239000013598 vector Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 238000012417 linear regression Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种线程池调度方法,包括:监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;基于所述线程特征数据训练多个模型;获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。通过本发明提出的一种线程池调度方法,可根据业务系统运行的特点以及业务部署的服务器或计算机的性能特点合理定制对应的任务的线程池的核心线程数和最大线程数。实现对不同业务系统和计算机运行环境进行灵活适配,既提高线程池调度效率又提升了对计算机资源的利用率。
Description
技术领域
本发明属于计算机领域,具体涉及一种线程池调度方法、系统、设备及可读存储介质。
背景技术
本发明主要应用于服务器管理软件运维场景下,提出一种服务器管理软件线程池自动调配方案。
服务器管理软件中为了方便管理会采用对任务模块进行封装的处理方式,但该封装方式使用一套线程池参数,对于像固件配置、固件升级、资产清点、系统安装等这些存在差异的任务使用同一套线程池参数往往难以达到并发性能最优的效果。一方面线程池的主要参数,如核心线程数、最大线程数的设置是人为给定的,并不能自适应地部署服务器硬件参数以及运行参数,并且难以调配出合适的线程池参数,如果并发数偏小导致任务执行耗时占用大量宝贵时间,而且并没有充分利用所部署服务器可提供的性能,并发数过多会导致频繁创建、销毁线程带来程序运行的非健康问题;另一方面对于使用同一个任务模块下发的不同任务类型,使用相同的线程池参数而没有根据任务的性质自动调整使得并发任务缺乏合理性,服务器管理软件缺乏自适应调配线程池参数的方案。
因此,亟需一种高效的线程池调度方案。
发明内容
为解决以上问题,本发明提出一种线程池调度方法,包括:
监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
基于所述线程特征数据训练多个模型;
获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
在本发明的一些实施方式中,监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据包括:
监控并获取所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数。
在本发明的一些实施方式中,方法还包括:
通过分类算法基于线程对应的线程运行参数对线程进行分类,并分类为健康状态线程和非健康状态线程;
将健康状态线程对应的所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数合并成线程特征数据。
在本发明的一些实施方式中,基于所述线程特征数据训练多个模型包括:
根据线程所属的任务分类获取对应任务分类的线程特征数据训练第一模型。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应的第一模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
在本发明的一些实施方式中,方法还包括:
获取多个任务分类所对应的第一模型,基于多个所述第一模型的模型权重进行权重分类,以每一个权重分类内的多个第一模型的权重的均值作为所属分类的第二模型的权重生成第二模。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应第二模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
本发明的另一方面还提出一种线程池调度系统,包括:
数据预处理模块,所述数据预处理模块配置用于监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
模型训练模块,所述模型训练模块配置用于基于所述线程特征数据训练多个模型;
线程池配置模块,所述线程池配置模块配置用于获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
通过本发明提出的一种线程池调度方法,可根据业务系统运行的特点以及业务部署的服务器或计算机的性能特点合理定制对应的任务的线程池的核心线程数和最大线程数。实现对不同业务系统和计算机运行环境进行灵活适配,既提高线程池调度效率又提升了对计算机资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种线程池调度方法的实施例流程图;
图2为本发明实施例提供的一种线程池调度系统的结构示意图;
图3为本发明实施例提供的一种计算机设备的结构示意图;
图4为本发明实施例提供的一种计算机可读存储介质的结构示意图;
图5为本发明实施例提供的一种线程池调度方的实施例的整体架构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
本发明主要解决的问题是服务器管理软件对任务的封装在线程池的使用上没能比较准确的依据所部署环境硬件参数、运行参数以及综合考虑不同的任务性质,通过主观判断去设置线程池参数,缺乏一套自适应线程池调配方案的问题,在现有技术中对于线程池的配置通常都是以人工根据具体的线程池对应线程的认识进行硬性分配,采用的方式通常是将线程归类为IO密集型和计算密集型,然后再根据技术人员的经验设定对应的线程池的线程的个数,以此来对优化线程的分配策略。这种方案在一定程度上可以提高线程池的分配策略。但是,一方面由于判断标准有技术人员的认知决定,不同的技术人员设定的线程池分配策略也不尽相同,另一方面在设置分配策略时只考虑线程任务的类型是IO密集还是计算密集,缺少对系统环境整体的考虑。因此,传统的实现方式上对线程池的调度策略存在局限性无法合理且有效的适应不同的运行环境。
为此,如图1所示,为解决上述问题,本发明提出一种线程池调度方法,包括:
步骤S1、监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
步骤S2、基于所述线程特征数据训练多个模型;
步骤S3、获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
在本发明的实施例中,监控线程池的运行状态,并获取线程池中所有的线程运行状态,包括线程从创建到执行结束整个过程中对应的线程池中的线程池中的线程个数,线程执行时间,线程池中线程池的个数或线程运行过程中所在计算机上的硬件资源的状态以及硬件资源使用率。任务记录数据是指对应线程所属的任务包括:任务类型、开始时间、结束时间、总耗时(同一批任务消耗的总体时间,如果是相同的任务在线程池中结束时间理应相同)等。在本实施例中,任务记录与线程一一对应。即一个任务对应一个执行该任务相应处理逻辑的线程。并将获取到的线程的运行数据任务记录数据通过常用的数据预处理手段转换成对应的特征数据。
在步骤S2中,通过预处理后的特征数据训练对应的模型,在本实施例中训练模型为线性模型,通过线性回归算法基于步骤S1中的特征数据按照如下公式生成对应的线性回归模型:
其中,f(x)表示线程池中的线程执行的总耗时,xj表示对应的特征数据中的对象的特征向量,wj表示待求的线性回归模型的权重。
在步骤S3中,当需要再次向线程池分配任务时,首先获取当前线程池所在的计算机上的硬件资源以及硬件资源使用率,根据设定的总耗时f(x)按照线性回归模型采用模拟退火的方式计算xj中的线程个数,计算出满足总耗时f(x)在一定范围内对应的线程个数,并将对应的线程个数作为此次分配任务对线程池中的运行的线程个数进行设定。
在本发明的一些实施方式中,监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据包括:
监控并获取所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数。
在本实施例中,硬件参数包括:CPU的个数、内存个数、磁盘容量、磁盘的读写速度、网络带宽等固定参数;硬件运行参数则包括:CPU使用率、内存使用率、网络吞吐量、磁盘吞吐量等因线程池的运行而动态变化的数据等;线程池配置参数包括:核心线程数和最大线程数,核心线程数最大线程数是线程池管理技术中定义的两个参数,即当线程池中运行的线程数量小于核心线程数时,即使运行中的其他线程属于空闲状态,线程池也会创建新的线程来处理对应的任务请求。如果线程数大于核心线程数,但小于最大线程数,则线程池只会在线程等待队列满的时候才会在线程池内创建新的线程;线程池运行参数是指线程池中的线程状态,包括线程池中运行的线程个数(理论上低于最大线程数)。
进一步,将上述硬件参数、硬件运行参数、线程运行参数以及线程池配置参数以及任务记录数据拼接成对应的特征数据,例如,以CPU的个数、内存个数、磁盘容量、磁盘的读写速度、网络带宽、CPU使用率、内存使用率、网络吞吐量、磁盘吞吐量、核心线程数、最大线程数、运行中的线程个数、总耗时作为一组特征向量,其中总耗时作为y,即标记值,其他数据按照顺序作为x组成对应的特征向量。
进一步,将收集到的多组上述特征向量进行初始化,将对应的特征数据进行归一化等处理形成可用于模型训练的特征数据构建对应的训练样本。
在本发明的一些实施方式中,方法还包括:
通过分类算法基于线程对应的线程运行参数对线程进行分类,并分类为健康状态线程和非健康状态线程;
将健康状态线程对应的所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数合并成线程特征数据。
在本实施例中,由于线程池中的线程并不都是正常运行,或因某些原因,某些线程的执行结果会收到其他条件影响,造成线程一致处于空闲或等待状态,为此,需要除线程池中异常的线程。在本实施例中,采用线程运行参数中的线程状态作为判断依据通过分类算法将线程的状态分为健康状态和非健康状态,并进一步将非健康状态的线程数据从训练样本中删除,只保留健康状态的线程的特征数据。
在本发明的一些实施方式中,基于所述线程特征数据训练多个模型包括:
根据线程所属的任务分类获取对应任务分类的线程特征数据训练第一模型。
在本实施例中,由于在线程池中执行的线程的因任务不同具有不同执行情况,很难通过传统的IO密集型和计算密集型等硬性分类区分任务对应的线程,例如,在一些情况下实现某些业务逻辑总既需要IO读写数据也需要计算读写的数据。这种任务在线程池中创建对应的线程执行时既需要CPU的计算又需要对应的磁盘、内存或网络的数据交互。
为精准实现对线程池中线程的模型建设,将上述训练样本中的特征数据,按照特征数据对应的线程的所属任务分类对特征数据进行筛选,并根据任务分类筛选出多个子训练样本,根据子训练样本训练对应的模型。也即每一个模型对应一类任务。理论上来说一个系统中如果存在100个任务则应训练100个对应的模型。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应的第一模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
在本实施例中,当需要在线程池为对应的任务创建线程时,需要获取当前的硬件资源的使用率、线程池的运行数据等,然后将根据需要创建线程的任务所对应的模型,将收集到上述数据输入到该模型采用模拟退火算法计算出在当前线程池运行条件下的线程池的核心线程数和最大线程数。并将核心线程数和最大线程数在创建对应的任务时输入到线程池中。
在本发明的一些实施方式中,方法还包括:
获取多个任务分类所对应的第一模型,基于多个所述第一模型的模型权重进行权重分类,以每一个权重分类内的多个第一模型的权重的均值作为所属分类的第二模型的权重生成第二模。
在本实施例中,获取上述实施例训练后得到用于计算对应的任务的总耗时的多个模型的权重,将每一个模型的权重数据作为一条特征数据,将多个模型的权重数据组成新的特征数据,例如:
W{{w11,w12,...,w1j,...,w1n},{w21,w22,...,w2j,...,w2n},...,{wi1,wi2,...,wij,...,win}}
其中,{w11,w12,...,w1j,...,w1n}表示第一任务对应的模型的对应的权重值组成的特征向量,W表示多个任务对应的模型的群众组成的特征集。
进一步,通过计算特征集W中的特征向量的马氏距离对多个任务对应的模型进行分类,计算公式如下:
其中,∑为多维特征向量的协方差矩阵Wi和Wj表示对应的特征向量即对应的任务的模型的权重。根据上述公式将对应的任务的模型进行分类。
进一步,在分类之后,对同属于一个分类内的多个任务所对应的模型的权重的值进行计算得到一组平均值,将该组平均值作为该分类下所有任务的综合模型的权重值。并将该综合模型用于对属于该分类的任务在创建线程时计算在当前条件下的核心线程数和最大线程数的计算模型。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应第二模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
在本实施例中,如前所述,在对多个任务对应的模型的权重求平均值得到对应的新的综合模型后,在为对应的任务创建线程时,判断该任务的分类,并根据分类获取到对应的综合模型,将当前计算机的资源状态数据和线程池的状态数据作为已知条件输入到该综合模型然后通过模拟退火算法求解满足总耗时要求下的最优的核心线程数和最大线程数配置参数。最后将得到的核心线程数和最大线程数作为线程池的配置参数发送到线程池对应的接口。
实施例:
在本实施了中,本发明以JAVA语言为例,并以Spring Boot Actuator为服务管理软件作为实施基础。具体地,如图5所示,实施过程如下:
1)通过Spring Boot Actuator已提供的端点(对应的用于监控线程运行的程序接口)以及自定义端点(自定义开发的程序的接口),监控线程信息、当前运行环境的硬件配置和运行参数等信息,以HTTP形式调用接口存储监控数据;Actuator监控功能提供的数据有限,因此需要通开发相应的监控获取当前计算机或服务器上的运行数据,例如CPU、内存、磁盘、网卡等硬件的硬件资源及对应的使用率。
2)对Actuator监控模块数据进行处理,获取部署端硬件参数(CPU的个数、内存个数等)、特定时间下运行参数(CPU使用率、内存使用率、网络等)特征集H,线程池配置参数(核心线程数、最大线程数)特征集P,线程池运行参数(线程状态等)特征集S,并对任务执行模块中的任务记录数据进行处理得到任务参数(任务类型、开始时间、结束时间、总耗时等)特征集R,依据时间结合以上特征集生成样本数据T;
3)对线程池运行参数特征集S通过SVM算法按健康和非健康进行二分类,对样本集T筛选出线程池运行健康状态下的样本集K,用于模型的训练;
4)以任务执行的耗时为因变量,步骤2)中特征集H、P、S、R中涉及的参数归一化处理后加权重作为自变量,公式如下:
其中wj为各参数对任务耗时的影响权重,按任务类型进行模型训练,得到每种任务对应的模型Mi;
5)提取每个模型Mi中的Wii组成特征集
W{{w11,w12,...,w1j,...,w1n},{w21,w22,...,w2j,...,w2n},...,{wi1,wi2,...,wij,...,win}}
计算特征向量之间的马氏距离对模型进行分类处理,得到以任务性质为类别的模型集U,特征集W两个向量间的马氏距离计算公式如下:
其中∑为多维特征向量的协方差矩阵;
每次任务执行前会触发线程池自动调配模块工作,该模块依据所下发的任务类型匹配到模型集U中对应的模型Uk,结合Actuator监控模块和数据预处理后的参数,经过模拟退火算法对模型U_k基于线程池参数的优化计算,得到最优解;
将线程池最优解以AOP的方式设置适配本次任务性质以及环境情况的线程池参数。
通过本发明提出的一种线程池调度方法,可根据业务系统运行的特点以及业务部署的服务器或计算机的性能特点是合理定制对应的任务的线程池的核心线程数和最大线程数。实现对不同业务系统和计算机运行环境进行灵活适配,既提高线程池利调度效率的又提升了对计算机资源的利用率。
如图2所示,本发明的另一方面还提出一种线程池调度系统,包括:
数据预处理模块1,所述数据预处理模块1配置用于监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
模型训练模块2,所述模型训练模块2配置用于基于所述线程特征数据训练多个模型;
线程池配置模块3,所述线程池配置模块3配置用于获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
如图3所示,本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器21;以及
存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现一种线程池调度方法,包括:
监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
基于所述线程特征数据训练多个模型;
获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
在本发明的一些实施方式中,监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据包括:
监控并获取所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数。
在本发明的一些实施方式中,方法还包括:
通过分类算法基于线程对应的线程运行参数对线程进行分类,并分类为健康状态线程和非健康状态线程;
将健康状态线程对应的所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数合并成线程特征数据。
在本发明的一些实施方式中,基于所述线程特征数据训练多个模型包括:
根据线程所属的任务分类获取对应任务分类的线程特征数据训练第一模型。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应的第一模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
在本发明的一些实施方式中,方法还包括:
获取多个任务分类所对应的第一模型,基于多个所述第一模型的模型权重进行权重分类,以每一个权重分类内的多个第一模型的权重的均值作为所属分类的第二模型的权重生成第二模。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应第二模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。如图4所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现一种线程池调度方法,包括:
监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
基于所述线程特征数据训练多个模型;
获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
在本发明的一些实施方式中,监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据包括:
监控并获取所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数。
在本发明的一些实施方式中,方法还包括:
通过分类算法基于线程对应的线程运行参数对线程进行分类,并分类为健康状态线程和非健康状态线程;
将健康状态线程对应的所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数合并成线程特征数据。
在本发明的一些实施方式中,基于所述线程特征数据训练多个模型包括:
根据线程所属的任务分类获取对应任务分类的线程特征数据训练第一模型。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应的第一模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
在本发明的一些实施方式中,方法还包括:
获取多个任务分类所对应的第一模型,基于多个所述第一模型的模型权重进行权重分类,以每一个权重分类内的多个第一模型的权重的均值作为所属分类的第二模型的权重生成第二模。
在本发明的一些实施方式中,方法还包括:
响应于创建新的线程任务,基于所述线程任务对应第二模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种线程池调度方法,其特征在于,包括:
监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
基于所述线程特征数据训练多个模型;
获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
2.根据权利要求1所述的方法,其特征在于,所述监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据包括:
监控并获取所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数。
3.根据权利要求2所述的方法,其特征在于,还包括:
通过分类算法基于线程对应的线程运行参数对线程进行分类,并分类为健康状态线程和非健康状态线程;
将健康状态线程对应的所述线程运行时运行环境中的硬件参数、硬件运行参数、线程运行参数以及线程池配置参数合并成线程特征数据。
4.根据权利要求1所述的方法,其特征在于,基于所述线程特征数据训练多个模型包括:
根据线程所属的任务分类获取对应任务分类的线程特征数据训练第一模型。
5.根据权利要求4所述的方法,其特征在于,还包括:
响应于创建新的线程任务,基于所述线程任务对应的第一模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
6.根据权利要求4所述的方法,其特征在于,还包括:
获取多个任务分类所对应的第一模型,基于多个所述第一模型的模型权重进行权重分类,以每一个权重分类内的多个第一模型的权重的均值作为所属分类的第二模型的权重生成第二模。
7.根据权利要求6所述的方法,其特征在于,还包括:
响应于创建新的线程任务,基于所述线程任务对应第二模型和当前线程池状态数据以及待创建的线程任务数量通过模拟退火算法计算最优线程配置参数,并将所述最优配置参数配置到线程池。
8.一种线程池调度系统,其特征在于,包括:
数据预处理模块,所述数据预处理模块配置用于监控并获取线程池中线程运行数据和对应的任务记录数据,对所述线程运行数据和所述任务记录数据进行预处理以生成线程特征数据;
模型训练模块,所述模型训练模块配置用于基于所述线程特征数据训练多个模型;
线程池配置模块,所述线程池配置模块配置用于获取当前线程池状态数据以及待分配任务数量基于所述多个模型通过模拟退火算法计算最优线程配置参数,并将所述线程配置参数作为线程池的调度策略。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210760753.7A CN115016916A (zh) | 2022-06-30 | 2022-06-30 | 一种线程池调度方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210760753.7A CN115016916A (zh) | 2022-06-30 | 2022-06-30 | 一种线程池调度方法、系统、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115016916A true CN115016916A (zh) | 2022-09-06 |
Family
ID=83078186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210760753.7A Pending CN115016916A (zh) | 2022-06-30 | 2022-06-30 | 一种线程池调度方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115016916A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115576702A (zh) * | 2022-12-08 | 2023-01-06 | 中大智能科技股份有限公司 | 一种面向地质灾害预警的最优算法并行数计算方法 |
CN115878664A (zh) * | 2022-11-24 | 2023-03-31 | 灵犀科技有限公司 | 一种海量输入数据的实时查询匹配的方法及系统 |
CN117193992A (zh) * | 2023-11-08 | 2023-12-08 | 浙江大华技术股份有限公司 | 模型训练方法、任务调度方法、装置以及计算机存储介质 |
CN117807294A (zh) * | 2024-02-28 | 2024-04-02 | 深圳市豪斯莱科技有限公司 | 一种多线程网络爬虫调度管理方法及系统 |
-
2022
- 2022-06-30 CN CN202210760753.7A patent/CN115016916A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878664A (zh) * | 2022-11-24 | 2023-03-31 | 灵犀科技有限公司 | 一种海量输入数据的实时查询匹配的方法及系统 |
CN115576702A (zh) * | 2022-12-08 | 2023-01-06 | 中大智能科技股份有限公司 | 一种面向地质灾害预警的最优算法并行数计算方法 |
CN115576702B (zh) * | 2022-12-08 | 2023-03-10 | 中大智能科技股份有限公司 | 一种面向地质灾害预警的最优算法并行数计算方法 |
CN117193992A (zh) * | 2023-11-08 | 2023-12-08 | 浙江大华技术股份有限公司 | 模型训练方法、任务调度方法、装置以及计算机存储介质 |
CN117193992B (zh) * | 2023-11-08 | 2024-02-02 | 浙江大华技术股份有限公司 | 模型训练方法、任务调度方法、装置以及计算机存储介质 |
CN117807294A (zh) * | 2024-02-28 | 2024-04-02 | 深圳市豪斯莱科技有限公司 | 一种多线程网络爬虫调度管理方法及系统 |
CN117807294B (zh) * | 2024-02-28 | 2024-05-28 | 深圳市豪斯莱科技有限公司 | 一种多线程网络爬虫调度管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115016916A (zh) | 一种线程池调度方法、系统、设备及可读存储介质 | |
Yadwadkar et al. | Wrangler: Predictable and faster jobs using fewer resources | |
Islam et al. | Predicting application failure in cloud: A machine learning approach | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
US10977711B1 (en) | Artificial intelligence system with hierarchical machine learning for interaction session optimization | |
US20220083389A1 (en) | Ai inference hardware resource scheduling | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和系统 | |
CN112667376A (zh) | 任务调度处理方法、装置、计算机设备及存储介质 | |
You et al. | Comprehensive workload analysis and modeling of a petascale supercomputer | |
CN112052081B (zh) | 一种任务调度方法、装置及电子设备 | |
CN102187327A (zh) | 趋势确定和识别 | |
CN114679451B (zh) | 面向边缘计算的服务调度系统及其调度方法 | |
CN113127173B (zh) | 一种异构感知的集群调度方法及装置 | |
CN115454322A (zh) | 使用经训练的模型的工作负载管理 | |
WO2022251004A1 (en) | Hierarchical neural network-based root cause analysis for distributed computing systems | |
Canali et al. | An adaptive technique to model virtual machine behavior for scalable cloud monitoring | |
Ravandi et al. | A black-box self-learning scheduler for cloud block storage systems | |
Wang et al. | An anomaly detection framework based on ICA and Bayesian classification for IaaS platforms | |
CN116755872A (zh) | 基于topsis的容器化流媒体服务动态加载系统及方法 | |
Jassas | A framework for proactive fault tolerance in cloud-IoT applications | |
KR20220045828A (ko) | 태스크 수행 방법 및 이를 이용하는 전자 장치 | |
Wang et al. | SaaS software performance issue identification using HMRF‐MAP framework | |
Liu et al. | Scheduling tasks with Markov-chain based constraints | |
Feng et al. | Heterogeneity-aware Proactive Elastic Resource Allocation for Serverless Applications | |
CN117724858B (zh) | 地理空间分析模型调度方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |