CN113467933B - 分布式文件系统线程池优化方法、系统、终端及存储介质 - Google Patents
分布式文件系统线程池优化方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN113467933B CN113467933B CN202110661278.3A CN202110661278A CN113467933B CN 113467933 B CN113467933 B CN 113467933B CN 202110661278 A CN202110661278 A CN 202110661278A CN 113467933 B CN113467933 B CN 113467933B
- Authority
- CN
- China
- Prior art keywords
- requests
- thread
- fluctuation
- value
- request
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000005457 optimization Methods 0.000 title claims abstract description 18
- 238000012544 monitoring process Methods 0.000 claims abstract description 24
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 11
- 230000002411 adverse Effects 0.000 abstract description 9
- 230000003068 static effect Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- 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
-
- 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/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式文件系统线程池优化方法、系统、终端及存储介质,包括:监控任务队列中的请求数量并计算请求数量的波动情况;设置请求数量阈值;若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;根据所述线程数调整量对线程池内的线程进行批量增删操作。通过设置请求数量阈值并监控请求数量的波动情况,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
Description
技术领域
本发明涉及分布式存储技术领域,具体涉及一种分布式文件系统线程池优化方法、系统、终端及存储介质。
背景技术
分布式存储系统为提高数据处理效率一般采用多线程模式。多线程模式可以提高CPU的利用率。在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。多线程的不利方面:线程也是程序,所以线程需要占用内存,线程越多占用内存也越多;多线程需要协调和管理,所以需要CPU时间跟踪线程;线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题;线程太多会导致控制太复杂,最终可能造成很多Bug。
多线程技术常见的是用线程池管理线程,线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数量。
现有线程池工作流程如下:
1.线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务(需要获得全局锁)。如果核心线程池里的线程都在执行任务,则进入下个流程。
2.线程池判断工作队列是否已满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程。
3.线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务(需要获得全局锁)。如果已经满了,则交给饱和策略(例如抛出异常)来处理这个任务。
可见,线程池对线程的管理都是设定最高创建线程数目,每个线程分配的资源固定,线程回收释放资源时由线程池统一管理,这样的缺点是显而易见的,如果任务不频繁,创建固定数目线程,将会浪费一定的资源,有些线程未被充分使用,同时在销毁线程,回收资源后,处理大量请求时还需要花费时间去创建线程,同时如果创建线程时间花费较多时,会导致请求处理速度较慢,导致请求卡住性能会降低等等诸多缺点。
发明内容
针对现有技术的上述不足,本发明提供一种分布式文件系统线程池优化方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种分布式文件系统线程池优化方法,包括:
监控任务队列中的请求数量并计算请求数量的波动情况;
设置请求数量阈值;
若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;
根据所述线程数调整量对线程池内的线程进行批量增删操作。
进一步的,所述方法还包括:
根据请求所属的场景类型对接收的请求进行分类;
预先设置各种请求种类对应的任务队列,设置各任务队列的执行优先级,并设定各优先级任务队列的工作线程比例下限值,所述工作线程比例为任务队列的线程数量与任务队列的请求数量的比例值;
根据请求的种类将请求分配至对应的任务队列,并根据各任务队列的请求数量和优先级为各任务队列分配线程。
进一步的,监控任务队列中的请求数量并计算请求数量的波动情况,包括:
定期获取任务队列的请求数量;
计算相邻次获取的请求数量的差值,并按照差值所属的周期先后顺序对差值进行排序,得到波动序列。
进一步的,根据所述波动情况生成线程调整量,包括:
预先设置多个波动值等级,并设置各波动值等级对应的线程调整量;
选取波动序列中指定时间段内的差值作为历史差值,计算历史差值的平均值;
根据所述平均值预测目标时间段内的波动值,并根据所述波动值所属的波动值等级获取所述波动值对应的线程调整量。
进一步的,根据所述线程数调整量对线程池内的线程进行批量增删操作,包括:
汇总各个任务队列的线程调整量,得到总线程调整量;
根据总线程调整量对线程池内的线程总数进行调整。
第二方面,本发明提供一种分布式文件系统线程池优化系统,包括:
请求监控单元,用于监控任务队列中的请求数量并计算请求数量的波动情况;
阈值设置单元,用于设置请求数量阈值;
调整计算单元,用于若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;
调整执行单元,用于根据所述线程数调整量对线程池内的线程进行批量增删操作。
进一步的,所述系统还包括:
请求分类单元,用于根据请求所属的场景类型对接收的请求进行分类;
优先设置单元,用于预先设置各种请求种类对应的任务队列,设置各任务队列的执行优先级,并设定各优先级任务队列的工作线程比例下限值,所述工作线程比例为任务队列的线程数量与任务队列的请求数量的比例值;
请求分配单元,用于根据请求的种类将请求分配至对应的任务队列,并根据各任务队列的请求数量和优先级为各任务队列分配线程。
进一步的,所述请求监控单元包括:
数量获取模块,用于定期获取任务队列的请求数量;
序列生成模块,用于计算相邻次获取的请求数量的差值,并按照差值所属的周期先后顺序对差值进行排序,得到波动序列。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,
本发明提供的分布式文件系统线程池优化方法,通过设置请求数量阈值并监控请求数量的波动情况,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
本发明提供的分布式文件系统线程池优化系统,通过请求监控单元监控请求数量的波动情况,并利用阈值设置单元设置请求数量阈值,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
本发明提供的分布式文件系统线程池优化终端,执行分布式文件系统线程池优化方法,通过设置请求数量阈值并监控请求数量的波动情况,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
本发明提供的存储介质,存储有执行分布式文件系统线程池优化方法的程序,通过设置请求数量阈值并监控请求数量的波动情况,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
下面对本发明中出现的关键术语进行解释。
进程:进程是一个很抽象的概念,指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。进程简单来理解就是每个应用都是一个进程。
线程:是用来执行具体功能和任务的,需要进程为载体,是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种分布式文件系统线程池优化系统。
如图1所示,该方法包括:
步骤110,监控任务队列中的请求数量并计算请求数量的波动情况;
步骤120,设置请求数量阈值;
步骤130,若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;
步骤140,根据所述线程数调整量对线程池内的线程进行批量增删操作。
为了便于对本发明的理解,下面以本发明分布式文件系统线程池优化方法的原理,结合实施例中对分布式文件系统线程池进行优化的过程,对本发明提供的分布式文件系统线程池优化方法做进一步的描述。
实施例1
本实施例提供一种分布式文件系统线程池优化方法,具体的,所述分布式文件系统线程池优化方法包括:
S1、设置请求数量阈值。
本实施例设定任务队列容量的80%为请求数量阈值,其中任务队列容量为任务队列可容纳的请求数量总数。
S2、监控任务队列中的请求数量并计算请求数量的波动情况。
每1min获取一次任务队列的请求数量,如获取到的请求数量按时间从先到后排序依次是a1、a2、a3、a4…,根据该序列获取请求数量是上升趋势还是下降趋势。
S3、若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量。
假设当前采集到的请求数量为an,若an达到请求数量阈值,触发线程调整。调整线程的具体方法是,根据预先设置的单次调整量A,A为正数,和波动趋势(上升或下降)生成线程调整量,例如线程上升,则调整量应为A,若线程数量下降,则调整量应为-A。
S4、根据所述线程数调整量对线程池内的线程进行批量增删操作。
根据步骤S3生成的调整量,线程池执行对线程的增删操作,例如若调整量为A,则增加A个线程,若调整量为-A,则删除A个线程。
本实施例通过监控请求数量的波动情况,并设置请求数量阈值,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
实施例2
本实施例提供一种分布式文件系统线程池优化方法,包括以下步骤:
S1、请求分类处理。
根据请求所属的场景类型对接收的请求进行分类;预先设置各种请求种类对应的任务队列,设置各任务队列的执行优先级,并设定各优先级任务队列的工作线程比例下限值,工作线程比例为任务队列的线程数量与任务队列的请求数量的比例值;根据请求的种类将请求分配至对应的任务队列,并根据各任务队列的请求数量和优先级为各任务队列分配线程。
具体的,例如将请求分为读写请求和其他请求,则创建两个任务队列分别为读写任务队列和其他任务队列。读写任务队列的优先级高于其他任务队列的优先级。同时设定读写任务队列的工作线程比例下限值为G1,其他任务队列的工作线程比例为G2,令G1大于G2。当读写任务队列的请求数量较大时,首先向其他任务队列分配线程,线程数量与其他任务队列的比例满足G2,然后将剩余的所有线程均分配给读写任务队列。需知,G2设定的较小,只需满足其他任务队列不阻塞即可。当读写任务队列的请求数量较小时,首先向读写任务队列分配线程,保证线程数量与读写任务队列的比例满足G1,G1的设定能够保证读写请求的高效率处理。然后将剩余线程分配给其他任务队列。
S2、设置请求数量阈值。
本实施例设置多个阈值,如任务队列可容纳请求数量的50%和80%。通过设置多个阈值,实现在多个节点触发线程调控的效果,从而使线程调控更加灵活。
S3、监控任务队列中的请求数量并计算请求数量的波动情况。
以读写请求任务队列为例,每1min获取一次请求数量,得到请求数量序列a1、a2、a3、a4…。计算相邻次获取的请求数量的差值,并按照差值所属的周期先后顺序对差值进行排序,得到波动序列b1、b2、b3…。
其他请求任务队列也以相同方法获取请求数量序列和波动序列。
S4、若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量。
预先设置多个波动值等级,并设置各波动值等级对应的线程调整量;选取波动序列中指定时间段内的差值作为历史差值,计算历史差值的平均值;根据平均值预测目标时间段内的波动值,并根据波动值所属的波动值等级获取波动值对应的线程调整量。
例如设置波动等级1对应的线程调整量为20,波动等级2对应的线程调整量为50。选取波动序列中15min内的差值作为历史差值,计算出平均值p,目标时间段为未来15min,则未来15min的请求数量波动值即为p×15,判断波动值的绝对值所对应的波动等级,若波动等级为1则对应线程调整量为20。
利用上述方法分别对读写任务队列和其他任务队列进行线程调整量估算,得到两个队列的线程调整量。
S5、根据所述线程数调整量对线程池内的线程进行批量增删操作。
对两个队列的线程调整量进行汇总,由于p可能是正数也可能是负数,因此需要保持队列的线程调整量的正负与p保持一致。在确定两个队列的线程调整量的正负之后,对两个队列的线程调整量相加,得到总的线程调整量。若总的线程调整量为正,则线程池增加相应数量的线程,若总的线程调整量为负,则线程池删除相应数量的线程。
本实施例可以实现批量调整线程数,即批量增加线程数,而不是请求较多时一个一个创建线程,这样更加灵活,当然线程池中线程数目虽然是动态的,但是依然需要设置线程数量的上限和下限,线程池在调整线程数时,不可超过上下限。
本实施例提供的方法,针对现有线程池静态创建线程的缺点,提出了一种线程池动态创建线程的方法,有效的避免了线程数量固定带来的种种缺点,使得系统资源没有得到很好的利用,进而影响系统性能,与此同时针对某些特定场景,例如请求数量较大的读写场景,可以有目的的将这些请求分配到优先级较高的队列中,线程池中的线程就会优先处理这些请求,进一步提升系统性能,针对线程处理请求面临的互斥问题,没有采用常规的加锁方式,而是采用无锁队列,通过确定各个队列的优先级,制定相应的线程分配规则,实现线程的指向性分配,减少了抢锁带来的资源消耗,有效提升系统性能,提高系统资源利用率。
如图2所示,该系统200包括:
请求监控单元210,用于监控任务队列中的请求数量并计算请求数量的波动情况;
阈值设置单元220,用于设置请求数量阈值;
调整计算单元230,用于若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;
调整执行单元240,用于根据所述线程数调整量对线程池内的线程进行批量增删操作。
本实施例提供的系统,通过设置请求数量阈值并监控请求数量的波动情况,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率。
可选地,作为本发明一个实施例,所述系统还包括:
请求分类单元,用于根据请求所属的场景类型对接收的请求进行分类;
优先设置单元,用于预先设置各种请求种类对应的任务队列,设置各任务队列的执行优先级,并设定各优先级任务队列的工作线程比例下限值,所述工作线程比例为任务队列的线程数量与任务队列的请求数量的比例值;
请求分配单元,用于根据请求的种类将请求分配至对应的任务队列,并根据各任务队列的请求数量和优先级为各任务队列分配线程。
可选地,作为本发明一个实施例,所述请求监控单元包括:
数量获取模块,用于定期获取任务队列的请求数量;
序列生成模块,用于计算相邻次获取的请求数量的差值,并按照差值所属的周期先后顺序对差值进行排序,得到波动序列。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的分布式文件系统线程池优化方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过设置请求数量阈值并监控请求数量的波动情况,对线程数量进行动态调整。有效避免了线程池静态创建线程锁总成的各种不利影响,合理利用了系统资源,在针对某些特定场景时,可以人为配置请求类型优先等级,对特定场景的请求优先作出处理,进一步提升系统性能和提高系统资源利用率,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (7)
1.一种分布式文件系统线程池优化方法,其特征在于,包括:
监控任务队列中的请求数量并计算请求数量的波动情况;
设置请求数量阈值;
若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;
根据所述线程数调整量对线程池内的线程进行批量增删操作;
监控任务队列中的请求数量并计算请求数量的波动情况,包括:
定期获取任务队列的请求数量;
计算相邻次获取的请求数量的差值,并按照差值所属的周期先后顺序对差值进行排序,得到波动序列;
根据所述波动情况生成线程调整量,包括:
预先设置多个波动值等级,并设置各波动值等级对应的线程调整量;
选取波动序列中指定时间段内的差值作为历史差值,计算历史差值的平均值;
根据所述平均值预测目标时间段内的波动值,并根据所述波动值所属的波动值等级获取所述波动值对应的线程调整量。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据请求所属的场景类型对接收的请求进行分类;
预先设置各种请求种类对应的任务队列,设置各任务队列的执行优先级,并设定各优先级任务队列的工作线程比例下限值,所述工作线程比例为任务队列的线程数量与任务队列的请求数量的比例值;
根据请求的种类将请求分配至对应的任务队列,并根据各任务队列的请求数量和优先级为各任务队列分配线程。
3.根据权利要求1所述的方法,其特征在于,根据所述线程数调整量对线程池内的线程进行批量增删操作,包括:
汇总各个任务队列的线程调整量,得到总线程调整量;
根据总线程调整量对线程池内的线程总数进行调整。
4.一种分布式文件系统线程池优化系统,其特征在于,包括:
请求监控单元,用于监控任务队列中的请求数量并计算请求数量的波动情况;
阈值设置单元,用于设置请求数量阈值;
调整计算单元,用于若监控到请求数量达到请求数量阈值,根据所述波动情况生成线程调整量;
调整执行单元,用于根据所述线程数调整量对线程池内的线程进行批量增删操作;
所述请求监控单元包括:
数量获取模块,用于定期获取任务队列的请求数量;
序列生成模块,用于计算相邻次获取的请求数量的差值,并按照差值所属的周期先后顺序对差值进行排序,得到波动序列;
根据所述波动情况生成线程调整量,包括:
预先设置多个波动值等级,并设置各波动值等级对应的线程调整量;
选取波动序列中指定时间段内的差值作为历史差值,计算历史差值的平均值;
根据所述平均值预测目标时间段内的波动值,并根据所述波动值所属的波动值等级获取所述波动值对应的线程调整量。
5.根据权利要求4所述的系统,其特征在于,所述系统还包括:
请求分类单元,用于根据请求所属的场景类型对接收的请求进行分类;
优先设置单元,用于预先设置各种请求种类对应的任务队列,设置各任务队列的执行优先级,并设定各优先级任务队列的工作线程比例下限值,所述工作线程比例为任务队列的线程数量与任务队列的请求数量的比例值;
请求分配单元,用于根据请求的种类将请求分配至对应的任务队列,并根据各任务队列的请求数量和优先级为各任务队列分配线程。
6.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-3任一项所述的方法。
7.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661278.3A CN113467933B (zh) | 2021-06-15 | 2021-06-15 | 分布式文件系统线程池优化方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110661278.3A CN113467933B (zh) | 2021-06-15 | 2021-06-15 | 分布式文件系统线程池优化方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113467933A CN113467933A (zh) | 2021-10-01 |
CN113467933B true CN113467933B (zh) | 2024-02-27 |
Family
ID=77869936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110661278.3A Active CN113467933B (zh) | 2021-06-15 | 2021-06-15 | 分布式文件系统线程池优化方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113467933B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138469B (zh) * | 2021-11-16 | 2023-11-14 | 苏州浪潮智能科技有限公司 | 固态硬盘的线程自适应分配方法、装置和固态硬盘 |
CN114374657A (zh) * | 2022-01-04 | 2022-04-19 | 京东科技控股股份有限公司 | 一种数据处理方法和装置 |
CN114726798B (zh) * | 2022-02-28 | 2023-07-18 | 福建星云电子股份有限公司 | 一种锂电池测试通道限流方法及系统 |
CN116755869B (zh) * | 2023-08-23 | 2023-10-27 | 北京浩然五洲软件技术有限公司 | 一种金融业务进件处理方法、系统和介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509671B1 (en) * | 2001-06-20 | 2009-03-24 | Microstrategy Incorporated | Systems and methods for assigning priority to jobs in a reporting system |
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN102207890A (zh) * | 2011-05-27 | 2011-10-05 | 苏州阔地网络科技有限公司 | 一种任务信息处理方法及调度控制处理装置 |
CN103019859A (zh) * | 2012-12-05 | 2013-04-03 | 北京普泽天玑数据技术有限公司 | 一种对服务请求调度的方法和系统 |
CN103516536A (zh) * | 2012-06-26 | 2014-01-15 | 重庆新媒农信科技有限公司 | 基于线程数量限制的服务器业务请求并行处理方法及系统 |
CN104111877A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于线程调配引擎的线程资源动态调配系统和方法 |
CN104536827A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种数据调度方法和装置 |
CN105117284A (zh) * | 2015-09-09 | 2015-12-02 | 厦门雅迅网络股份有限公司 | 一种基于优先级比例队列的工作线程的调度方法 |
CN105760234A (zh) * | 2016-03-17 | 2016-07-13 | 联动优势科技有限公司 | 一种线程池管理方法及装置 |
CN106470169A (zh) * | 2015-08-19 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种业务请求调整方法及设备 |
CN109840142A (zh) * | 2018-12-15 | 2019-06-04 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN110569123A (zh) * | 2019-07-31 | 2019-12-13 | 苏宁云计算有限公司 | 线程分配方法、装置、计算机设备和存储介质 |
CN112346834A (zh) * | 2020-10-12 | 2021-02-09 | 北京金山云网络技术有限公司 | 数据库的请求处理方法和装置、电子设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185906B2 (en) * | 2007-05-23 | 2012-05-22 | Sap Ag | Method and apparatus for dynamically adjusting thread pool |
-
2021
- 2021-06-15 CN CN202110661278.3A patent/CN113467933B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7509671B1 (en) * | 2001-06-20 | 2009-03-24 | Microstrategy Incorporated | Systems and methods for assigning priority to jobs in a reporting system |
CN101739293A (zh) * | 2009-12-24 | 2010-06-16 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN102207890A (zh) * | 2011-05-27 | 2011-10-05 | 苏州阔地网络科技有限公司 | 一种任务信息处理方法及调度控制处理装置 |
CN103516536A (zh) * | 2012-06-26 | 2014-01-15 | 重庆新媒农信科技有限公司 | 基于线程数量限制的服务器业务请求并行处理方法及系统 |
CN103019859A (zh) * | 2012-12-05 | 2013-04-03 | 北京普泽天玑数据技术有限公司 | 一种对服务请求调度的方法和系统 |
CN104111877A (zh) * | 2014-07-29 | 2014-10-22 | 广东能龙教育股份有限公司 | 一种基于线程调配引擎的线程资源动态调配系统和方法 |
CN104536827A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种数据调度方法和装置 |
CN106470169A (zh) * | 2015-08-19 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种业务请求调整方法及设备 |
CN105117284A (zh) * | 2015-09-09 | 2015-12-02 | 厦门雅迅网络股份有限公司 | 一种基于优先级比例队列的工作线程的调度方法 |
CN105760234A (zh) * | 2016-03-17 | 2016-07-13 | 联动优势科技有限公司 | 一种线程池管理方法及装置 |
CN109840142A (zh) * | 2018-12-15 | 2019-06-04 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN110569123A (zh) * | 2019-07-31 | 2019-12-13 | 苏宁云计算有限公司 | 线程分配方法、装置、计算机设备和存储介质 |
CN112346834A (zh) * | 2020-10-12 | 2021-02-09 | 北京金山云网络技术有限公司 | 数据库的请求处理方法和装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113467933A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113467933B (zh) | 分布式文件系统线程池优化方法、系统、终端及存储介质 | |
EP3254196B1 (en) | Method and system for multi-tenant resource distribution | |
JP3823098B2 (ja) | グリッド計算ワークロードをネットワーク・ワークステーションに割り当てるためのシステムおよび方法 | |
US8959515B2 (en) | Task scheduling policy for limited memory systems | |
JP5744909B2 (ja) | アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム | |
JP5040773B2 (ja) | メモリバッファ割当装置およびプログラム | |
CN111694633A (zh) | 集群节点负载均衡方法、装置及计算机存储介质 | |
US20150312167A1 (en) | Maximizing server utilization within a datacenter | |
EP1693748A2 (en) | Method and system for resource management | |
US11876731B2 (en) | System and methods for sharing memory subsystem resources among datacenter applications | |
JP2013506179A (ja) | 命令スレッドを組み合わせた実行の管理システムおよび管理方法 | |
CN111124687B (zh) | 一种cpu资源预留方法、装置及其相关设备 | |
US20090178045A1 (en) | Scheduling Memory Usage Of A Workload | |
US7007150B2 (en) | Memory balancing and optimization services | |
US20220195434A1 (en) | Oversubscription scheduling | |
CN110543355A (zh) | 一种自动均衡云平台资源的方法 | |
Scordino et al. | Energy-aware real-time scheduling in the linux kernel | |
JP4348639B2 (ja) | マルチプロセッサシステム、ワークロード管理方法 | |
CN113032102A (zh) | 资源重调度方法、装置、设备和介质 | |
CN107203256B (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
US7698705B1 (en) | Method and system for managing CPU time consumption | |
CN103959276A (zh) | 基于用户意图和进程独立性的知识的资源分配优先化 | |
Kim et al. | Using DVFS and task scheduling algorithms for a hard real-time heterogeneous multicore processor environment | |
Kundan et al. | Priority-aware scheduling under shared-resource contention on chip multicore processors |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |