CN111064746A - 一种资源分配方法、装置、设备及存储介质 - Google Patents
一种资源分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111064746A CN111064746A CN201911399734.0A CN201911399734A CN111064746A CN 111064746 A CN111064746 A CN 111064746A CN 201911399734 A CN201911399734 A CN 201911399734A CN 111064746 A CN111064746 A CN 111064746A
- Authority
- CN
- China
- Prior art keywords
- task
- resources
- tasks
- target
- preset
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
- G06F21/46—Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Abstract
本申请提供了一种资源分配方法、装置、设备及存储介质;所述方法包括:获取第一任务列表和第二任务列表,其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务;当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务;为各个第一目标任务分配预设资源以执行所述各个第一目标任务;当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配。
Description
技术领域
本申请涉及网络信息安全技术领域,涉及但不限于一种资源分配方法、装置、设备及存储介质。
背景技术
漏洞扫描技术是一类重要的网络安全技术,和防火墙、入侵检测系统互相配合,能够有效提高网络的安全性。漏洞扫描器在执行漏洞扫描任务时,对于不同的漏洞扫描任务,其扫描目标的数量、资产类型和扫描方式一般不同,资源的消耗量有很大差异。当同时下发多个扫描任务时,对资源的分配是否合理,关系到完成扫描任务的时间的长短,影响用户体验。
现有的资源分配一般采用两种方案。第一种是将资源尽量多地分配到靠前的任务,并发扫描的任务量比较少,当第一个任务占用资源较多时,只能执行一个任务,后续任务只能等在先任务释放资源后才能执行,执行多个任务时耗时较长,用户体验较差。第二种是为了确保同时执行多个任务,单个任务最多只能分配一定数量的资源,当只有一个任务时,有大量资源处于闲置状态,造成资源浪费。
发明内容
有鉴于此,本申请实施例提供了一种资源分配方法、装置、设备及存储介质。
本申请的技术方案是这样实现的:
第一方面,本申请实施例提供了一种资源分配方法,包括:
获取第一任务列表和第二任务列表,其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务;
当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务;
为各个第一目标任务分配预设资源以执行所述各个第一目标任务;
当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配第二方面,本申请实施例提供了一种资源分配装置,包括:
第一获取模块,用于获取第一任务列表和第二任务列表,其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务;
第一确定模块,用于当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务;
第一分配模块,用于为各个第一目标任务分配预设资源以执行所述各个第一目标任务;
第二分配模块,用于当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配。
第三方面,本申请实施例提供了一种资源分配设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现上述资源分配方法。
第四方面,本申请提供了一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述资源分配方法。
本申请实施例提供的资源分配方法中,首先获取第一任务列表中包括的待执行的漏洞扫描任务,获取第二任务列表中包括的执行中的漏洞扫描任务,判断第二任务列表中正执行的漏洞扫描任务的数量是否预设阈值,当小于预设阈值时,从第一任务列表中确定第一目标任务,为各个第一目标任务分配预设资源,并将其添加至第二任务列表,然后开始执行各个第一目标任务,确保并发执行多个漏洞扫描任务;当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配,避免大量资源处于闲置状态,实现了资源的有效利用,通过动态调整漏洞扫描任务的并发程度与资源的利用率,实现了动态的资源合理分配。
附图说明
图1为本申请实施例提供的资源分配方法的一种实现流程示意图;
图2为本申请实施例提供的资源分配方法的另一种实现流程示意图;
图3为本申请实施例提供的资源分配方法的又一种实现流程示意图;
图4为本申请实施例提供的满足最小并发的一种实现流程示意图;
图5为本申请实施例提供的为执行中的漏洞扫描任务分配资源的一种实现流程示意图;
图6为本申请实施例提供的待执行的漏洞扫描任务分配资源的一种实现流程示意图;
图7为本申请实施例提供的资源分配方法的网络架构示意图;
图8为本申请实施例提供的资源分配设备的组成结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)漏洞扫描任务的类型:有资产发现、系统扫描、Web扫描、弱口令扫描4种类型。不同类型的漏洞扫描任务的资源消耗量不同。
2)资产:扫描目标,有IP和URL两种类型。IP可以进行资产发现、系统扫描、弱口令扫描;URL可以进行Web扫描和弱口令扫描。
3)任务:管理人员下发的漏洞扫描任务,比如对10个IP资产做系统漏洞扫描为一个任务。
4)子任务:执行时将漏洞扫描任务拆分为单个资产执行的粒度,比如将上述举例的任务拆分为10个IP资产系统漏洞扫描子任务。
下面说明本申请实施例提供的资源分配方法,参见图1,图1为本申请实施例提供的资源分配方法的一种实现流程示意图,应用于资源分配设备,该方法具体包括以下步骤:
步骤S101,获取第一任务列表和第二任务列表。
其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务。
资源分配设备响应于管理人员触发的漏洞扫描操作指令,获取第一任务列表和第二任务列表,以得到第一任务列表中的待执行的漏洞扫描任务以及第二任务列表中的正在执行的漏洞扫描任务。
步骤S102,判断所述第二任务列表中的第二任务数是否小于预设阈值。
若第二任务列表中的第二任务较少,使得执行中的漏洞扫描任务的并发度低,虽然可缩短每个漏洞扫描任务的执行时长,但增加了漏洞扫描任务的等待时长;若第二任务列表中的第二任务较多,使得执行中的漏洞扫描任务的并发度高,虽然可缩短漏洞扫描任务的等待时长,但增加了漏洞扫描任务的执行时长。
基于此,本实施例中,预先设定一个阈值,在获取到第二任务列表后,判断第二任务列表中的第二任务数是否小于预设阈值,若小于,表明当前执行中的漏洞扫描任务的并发度较低,可继续执行第一任务列表中的第一任务,进入步骤S103。若第二任务列表中的第二任务数大于或等于预设阈值,表明当前执行中的漏洞扫描任务的并发度已达到要求,无需再增加更多的执行中的漏洞扫描任务,此时进入步骤S105。
这里,预设阈值可以是由管理人员根据资源分配设备的属性确定的,还可以是系统默认设置的,以达到缩短漏洞扫描任务的执行时长和缩短漏洞扫描任务的等待时长的平衡。
步骤S103,从所述第一任务列表中确定第一目标任务。
当第二任务列表中的第二任务数小于预设阈值时,表明当前执行中的漏洞扫描任务的并发度较低,可以并行执行新的待执行漏洞扫描任务,此时从第一任务列表中确定第一目标任务,该第一目标任务就是准备执行的漏洞扫描任务。
步骤S104,为各个第一目标任务分配预设资源以执行所述各个第一目标任务。
这里,预设资源是根据漏洞扫描任务确定的最低分配资源,若分配的资源少于预设资源,无法确保所有漏洞扫描任务都可以被执行。
资源分配设备为每个第一目标任务分配预设资源后,满足所有的第一目标任务可以开始被执行的条件,开始执行这些第一目标任务,即将第一目标任务对应的待执行的漏洞扫描任务的状态由待执行改为执行中,第一目标任务对应的待执行的漏洞扫描任务不再存在与第一任务列表,而存在于第二任务列表中。
本实施例通过判断执行中的漏洞扫描任务数,当小于预设阈值时,确定当前执行漏洞扫描任务的并发度较低。此时若存在待执行的漏洞扫描任务,为了尽快执行完所有漏洞扫描任务,减少执行所有漏洞扫描任务的耗时,可以从待执行的漏洞扫描任务中确定可开始执行的第一目标任务,以提高执行漏洞扫描任务的并发度,并缩短待执行的漏洞扫描任务的等待时间。
步骤S105,将剩余资源按照各个第二任务的执行顺序进行分配。
当步骤S102判断得到第二任务列表中的第二任务数大于或等于预设阈值,表明当前执行中的漏洞扫描任务的并发度已达到要求,无需再增加更多的执行中的漏洞扫描任务,此时将剩余资源分配给执行中的漏洞扫描任务。
或者当步骤S104为各个第一目标任务分配预设资源后,继续将剩余资源分配给执行中的漏洞扫描任务。
本实施例中,将剩余资源进行分配之前,先获取剩余资源。在获取剩余资源时,资源分配设备可以先获取其自身的总资源,再获取执行中的漏洞扫描任务所占用的资源,根据总资源与执行中的漏洞扫描任务所占用的资源的差值确定剩余资源。
这里,当第二任务列表中的第二任务数不小于预设阈值时,此步骤的执行中的漏洞扫描任务即为步骤S101中获取的第二任务列表中的各个第二任务。当第二任务列表中的第二任务数小于预设阈值时,此步骤的执行中的漏洞扫描任务为步骤S101中获取的第二任务列表中的各个第二任务与步骤S103执行的各个第一目标任务之和。
得到剩余资源后,若剩余资源不为零,即存在闲置的资源,此时,按照第二任务列表中各个执行中的漏洞扫描任务的先后顺序,将剩余资源进行分配,从而减少闲置资源,实现了资源的最大化利用。并且,分配剩余资源时,按照各个执行中的漏洞扫描任务的执行顺序进行分配,保证先执行的漏洞扫描任务分配的资源更多,实现了资源的合理分配。
本实施例提供的资源分配方法,资源分配设备首先获取第一任务列表中的各个待执行的漏洞扫描任务、第二任务列表中的各个执行中的漏洞扫描任务,当第二任务列表中的第二任务数小于预设阈值时,认为此时并发度较低,可以执行更多的漏洞扫描任务,因此从所述第一任务列表中确定第一目标任务,并为各个第一目标任务分配预设资源,以执行所述各个第一目标任务;当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配,如此不仅能够提高漏洞扫描任务并发度,且减少了闲置资源,确保先执行的漏洞扫描任务分配的资源更多,实现了资源的动态、合理分配,提高了资源的利用率,进而减少了待执行的漏洞扫描任务的等待时间,缩短了执行所有漏洞扫描任务的总耗时。
在一些实施例中,图1所示实施例中的步骤S102和步骤S103“判断所述第二任务列表中的第二任务数是否小于预设阈值,从所述第一任务列表中确定第一目标任务”可以通过下述的步骤S1031至步骤S1034实现,以下结合各个步骤进行说明。
步骤S1031,判断是否达到第一预设周期。
第一预设周期为预设的为第一任务列表中的各个第一任务分配资源的时间间隔,每隔第一预设周期,资源分配设备执行一次判断,以确定是否开始执行各个第一任务,即确定是否为各个第一任务分配资源。
当达到第一预设周期时,表明当前时间已达到执行待执行的漏洞扫描任务的时间,进入步骤S1032。当未达到第一预设周期时,表明当前时间还未达到执行待执行的漏洞扫描任务的时间,继续等待,循环执行步骤S1031。
步骤S1032,判断所述第二任务列表中的第二任务数是否小于预设阈值。
当第二任务数小于预设阈值时,可以并行执行新的待执行漏洞扫描任务,此时进入步骤S1033。当第二任务数大于或等于预设阈值时,无需再增加更多的执行中的漏洞扫描任务,进入步骤S105。
步骤S1033,根据所述预设阈值、所述第二任务数和所述第一任务列表中的第一任务数,确定第一目标任务数N。
当确定第二任务列表中的第二任务数小于预设阈值后,进一步确定准备执行的任务数,即第一目标任务数。
其中,当预设阈值和第二任务数的差值小于第一任务列表中的第一任务数时,表明无法执行完第一任务列表中所有的待执行的漏洞扫描任务。此时,可以通过公式1计算第一目标任务数:
N=X-Y (1);
其中,所述N为第一目标任务数,X为预设阈值,Y为第二任务数,X为正整数,N和Y均为不大于X的自然数。
当预设阈值和第二任务数的差值大于或等于第一任务列表中的第一任务数时,表明在执行第二任务列表中的执行中的漏洞扫描任务时,可以同时执行第一任务列表中的所有待执行的漏洞扫描任务,此时第一目标任务数N等于第一任务数。若第一任务数为零,表明没有待执行的漏洞扫描任务。若第一任务数不为零,执行各个第一目标任务后,此时第一任务列表中的第一任务数为零。
举例来说,当预设阈值为5,第二任务数为2时,此时说明最多可以再执行3个漏洞扫描任务,当第一任务数为4时,由于有足够的待执行漏洞扫描任务,因此此时第一目标任务数N为3。当第一任务数为2时,也即此时只有两个待执行漏洞扫描任务,此时第一目标任务数N为2。当第一任务数为0时,也即此时没有待执行漏洞扫描任务,此时第一目标任务数N为0。
步骤S1034,按照第一任务列表中各个第一任务的执行顺序,将前N个第一任务确定为第一目标任务子列表中的各个第一目标任务。
管理人员下发多个漏洞扫描任务时,根据多个漏洞扫描任务下发的先后顺序,确定第一任务列表中的各个第一任务的执行顺序。
在确定了第一目标任务数N后,当第一目标任务数N为零时,即为零个第一目标任务分配资源,也即没有待分配预设资源的第一目标任务,无需执行步骤S104“为各个第一目标任务分配预设资源以执行所述各个第一目标任务”,此时,直接进入下一个第一预设周期。
本实施例中,第一任务列表中先执行的第一任务下发时间早,即按照管理人员下发多个漏洞扫描任务的顺序确定其执行顺序。第一任务列表可以采用队列这一数据结构,使得先进入第一任务列表的第一任务先被执行。
由此,在第一目标任务数N大于零时,将第一任务列表中的前N个第一任务确定为第一目标任务,从而得到了准备执行的漏洞扫描任务。
在一些实施例中,图1所示实施例中的步骤S104“为各个第一目标任务分配预设资源以执行所述各个第一目标任务”可以通过下述的步骤S1041至步骤S1047实现,以下结合各个步骤进行说明。
步骤S1041,基于所述预设资源和第一目标任务数,确定执行所述各个第一目标任务至少所需资源。
这里,假设为每个第一目标任务分配的预设资源记做t,第一目标任务共N个,由此得到执行各个第一目标任务至少所需资源S=N*t。
步骤S1042,获取当前剩余资源。
本实施例中,资源分配设备先获取其自身的总资源,再获取执行中的漏洞扫描任务所占用的资源,根据总资源与执行中的漏洞扫描任务所占用的资源的差值确定当前剩余资源。
这里,执行中的漏洞扫描任务即为步骤S101中获取的第二任务列表中的各个第二任务。
步骤S1043,判断当前剩余资源是否大于或等于执行各个第一目标任务至少所需资源。
这里,当当前剩余资源大于或等于执行各个第一目标任务至少所需资源时,表明当前剩余资源足够执行各个第一目标任务,此时进入步骤S1044;当当前剩余资源小于执行各个第一目标任务至少所需资源时,表明当前剩余的资源不足以执行各个第一目标任务,此时进入步骤S1045,以释放执行中的漏洞扫描资源所占用的部分资源,确保当前剩余资源与释放资源的总和可以足够执行各个第一目标任务。
步骤S1044,从所述当前剩余资源中为各个第一目标任务分配预设资源以执行所述各个第一目标任务。
资源分配设备确定的执行各个第一目标任务至少所需资源为S,当当前剩余资源多于S时,直接为各个第一目标任务分配预设资源t,预设资源t可执行第一目标任务中至少一个子任务。资源分配设备为每个第一目标任务分配预设资源后,满足所有的第一目标任务可以开始被执行的条件,开始执行这些第一目标任务。
步骤S1045,获取各个第二任务的当前占用资源。
资源分配设备确定的执行各个第一目标任务至少所需资源为S,当当前剩余资源少于S时,无法为所有第一目标任务分配预设资源,表明此时执行中的漏洞扫描任务占用了较多资源,为确保并发执行多个漏洞扫描任务,需要将已经分配给执行中的漏洞扫描任务的资源进行释放,当然,释放完后至少要确保执行中的漏洞扫描任务可以继续执行,即释放完后,每个执行中的漏洞扫描任务占用的资源不少于预设资源。可见,释放的资源多少,是由各个执行中的漏洞扫描任务当前占用资源和预设资源确定的,因此,在释放盈余资源前,先要获取各个第二任务的当前占用资源。
步骤S1046,基于各个第二任务的当前占用资源和预设资源确定各个第二任务的盈余资源。
对每个第二任务计算盈余资源,具体计算方式为第二任务的当前占用资源减去预设资源,得到的差值即为该第二任务的盈余资源。
步骤S1047,按照各个第二任务的执行顺序的逆序释放各个第二任务的盈余资源,直到释放的盈余资源与当前剩余资源的总和大于或等于执行所述各个第一目标任务至少所需资源为止。
为了确保先执行的漏洞扫描任务分配的资源更多,在释放各个第二任务的盈余资源时,按照各个第二任务的执行顺序的逆序开始释放。当释放的盈余资源与当前剩余资源的总和不少于执行各个第一目标任务至少所需资源为S时,可以为所有第一目标任务分配预设资源,此时,停止释放盈余资源。
例如,资源分配设备确定的执行各个第一目标任务至少所需资源为18,当前剩余资源为6,当前剩余资源少于执行各个第一目标任务至少所需资源。此时执行中的漏洞扫描任务为两个,第一个和第二个执行中的漏洞扫描任务的当前占用资源分别为43、11。根据第一个执行中的漏洞扫描任务的当前占用资源43和预设资源6确定第一个执行中的漏洞扫描任务的盈余资源为43-6=37,根据第二个执行中的漏洞扫描任务的当前占用资源11和预设资源6确定第二个执行中的漏洞扫描任务的盈余资源为11-6=5。然后,按照执行中的漏洞扫描任务的执行顺序的逆序释放各自的盈余资源,即先释放第二个执行中的漏洞扫描任务的盈余资源5。释放的盈余资源5与当前剩余资源6的加和为5+6=11,由于11仍小于执行各个第一目标任务至少所需资源为18,因此,需要进一步释放第一个执行中的漏洞扫描任务的盈余资源37,此时,释放的盈余资源与当前剩余资源的加和为11+37=48,由于48大于执行各个第一目标任务至少所需资源为18,此时停止释放盈余资源。
在本实施例提供的资源分配方法中,在开始执行第一目标任务前,先要确保有足够的资源以保证各个第一目标任务可以被执行。基于此,先确定执行各个第一目标任务至少所需资源,当当前剩余资源不少于执行所述各个第一目标任务至少所需资源时,直接从当前剩余资源中为各个第一目标任务分配预设资源;当当前剩余资源少于执行各个第一目标任务至少所需资源时,按照各个第二任务的执行顺序的逆序释放各个第二任务的盈余资源,以确保盈余资源与当前剩余资源的总和不少于执行各个第一目标任务至少所需资源,为各个第一目标任务分配预设资源,使得各个第一目标任务均有足够的资源,从而可以开始执行各个第一目标任务。
在图1所示实施例的基础上,本申请实施例再提供一种资源分配方法。图2为本申请实施例提供的资源分配方法的另一种实现流程示意图,如图2所示,该方法具体包括以下步骤:
步骤S201,获取第一任务列表和第二任务列表。
其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务。
本实施例中步骤S201、步骤S205和步骤S206参见图1所示实施例中的具体描述,本实施例中不再赘述。
步骤S202,判断是否达到第二预设周期。
第二预设周期为预设的为第二任务列表中的各个第二任务分配资源的时间间隔,每隔第二预设周期,资源分配设备执行一次判断,以确定是否为各个第二任务分配资源。
当未达到第二预设周期时,表明当前时间还未达到为各个第二任务分配剩余资源的时间,执行步骤S203。当达到第二预设周期时,表明可以开始为各个第二任务分配剩余资源,执行步骤S207。
步骤S203,判断是否达到第一预设周期。
第一预设周期为预设的为第一任务列表中的各个第一任务分配资源的时间间隔,每隔第一预设周期,资源分配设备执行一次判断,以确定是否开始执行各个第一任务,即确定是否为各个第一任务分配资源。
为确保并发执行多个漏洞扫描任务,避免将所有资源都分配给第二任务列表中的执行中的漏洞扫描任务,本实施例中的第二预设周期大于第一预设周期,进一步地,第二预设周期可以是第一预设周期的整数倍,即在未达到第二预设周期时,多次达到第一预设周期。
当达到第一预设周期时,表明当前时间已达到执行待执行的漏洞扫描任务的时间,执行步骤S204。当未达到第一预设周期时,表明当前时间还未达到执行待执行的漏洞扫描任务的时间,继续等待,循环执行步骤S203。
步骤S204,判断所述第二任务列表中的第二任务数是否小于预设阈值。
当所述第二任务列表中的第二任务数小于预设阈值时,表明当前执行中的漏洞扫描任务的并发度较低,可继续执行第一任务列表中的第一任务,进入步骤S205。若第二任务列表中的第二任务数大于或等于预设阈值,表明当前执行中的漏洞扫描任务的并发度已达到要求,无需再增加更多的执行中的漏洞扫描任务,此时进入步骤S207。
步骤S205,从所述第一任务列表中确定第一目标任务。
步骤S206,为各个第一目标任务分配预设资源以执行所述各个第一目标任务。
步骤S207,获取剩余资源。
执行中的漏洞扫描任务,当执行完上一个子任务后,还没来得及执行下一个子任务时,释放了一部分资源,剩余的资源无法执行该执行中的漏洞扫描任务的下一个子任务,此时,该执行中的漏洞扫描任务开始等待资源分配设备为其补充资源。据此,在达到第二预设周期后,将所述剩余资源按照各个第二任务的执行顺序进行分配之前,需要通过执行下述步骤S208至S211以保证各个执行中的漏洞扫描任务能够执行。
步骤S208,获取各个第二任务的当前占用资源。
在该步骤中,获取各个第二任务的当前占用资源,以判断各个第二任务的当前占用资源是否大于或等于预设资源。
步骤S209,判断是否存在当前占用资源小于预设资源的第二目标任务。
当存在当前占用资源小于预设资源的第二目标任务时,表明该第二目标任务此时的占用资源不足以执行当前第二目标任务的子任务,需要再次分配补充资源,此时,进入步骤S210。当不存在当前占用资源小于预设资源的第二目标任务时,表明各个第二任务均可以正常执行,进入步骤S212。
步骤S210,基于所述预设资源和所述当前占用资源确定所述第二目标任务的补充资源。
当再次分配补充资源时,根据预设资源与当前占用资源的差值确定第二目标任务的补充资源。举例来说,当预设资源为6,第二目标任务当前占用资源为4,此时说明第二目标任务当前占用的资源不足以执行消耗资源大于4的子任务,需要再为该第二目标任务分配2个补充资源,以确保可以执行第二目标任务。
步骤S211,从所述剩余资源中为所述第二目标任务分配所述补充资源。
从剩余资源中为第二目标任务分配补充资源,使得为所有第二任务分配的资源均不少于预设资源,确保所有第二任务正常执行。
步骤S212,将剩余资源按照各个第二任务的执行顺序进行分配。
本实施例中,在步骤S209中,若存在当前占用资源小于预设资源的第二目标任务,此时的剩余资源已更新为步骤S207的剩余资源与步骤S210的补充资源的差值。
本实施例提供的资源分配方法,在确保并发执行多个漏洞扫描任务后,将剩余资源分配给各个第二任务之前,先获取各个第二任务的当前占用资源,当第二任务中存在当前占用资源小于预设资源的第二目标任务时,基于所述预设资源和所述当前占用资源确定所述第二目标任务的补充资源,然后从所述剩余资源中为所述第二目标任务分配所述补充资源,确保执行中的漏洞扫描任务在执行的过程中,所占用的资源不少于预设资源,对资源不足的第二目标资源及时补充资源,缩短等待重新资源的等待时长,解决了由于执行完第二目标任务的子任务后释放了一部分资源,导致第二目标任务的后续子任务资源达不到预设资源而无法执行的问题。
在一些实施例中,图2所示实施例中的步骤S212“将剩余资源按照各个第二任务的执行顺序进行分配”可以通过下述的步骤S2121至S2125实现:
步骤S2121,根据所述补充资源对所述剩余资源进行更新,得到更新后的第一剩余资源。
根据步骤S208至步骤S211对第二目标任务分配补充资源后,剩余资源已改变,因此在将剩余资源分配分配给执行中的漏洞扫描任务之前,需要对其进行更新。在实现时,可将剩余资源与补充资源的差值,作为更新后的第一剩余资源。
步骤S2122,判断第一剩余资源是否大于零。
当第一剩余资源大于零时,表明存在闲置的资源,可以将其分配给执行中的漏洞扫描任务,进入步骤S2123。当第一剩余资源等于零时,表明不存在闲置的资源,系统的所有资源均已用以执行漏洞扫描任务,已经实现了资源的最大利用率,进入步骤S2125。
步骤S2123,获取执行所述各个第二任务所需的最多资源。
其中,第二任务所需的最多资源为执行所述第二任务中所有子任务时所需资源的总和。
当分配补充资源后,仍有剩余资源,即第一剩余资源大于零。为了减少闲置资源,实现了资源的最大化利用,本实施例中将将第一剩余资源分配给执行中的漏洞扫描任务。首先获取各个执行中的漏洞扫描任务所需的最多资源,按照所需为其分配资源,以实现合理分配。
步骤S2124,基于所述各个第二任务所需的最多资源,将所述第一剩余资源按照所述各个第二任务的执行顺序进行分配,直到分配完所有第一剩余资源或分配完所有第二任务为止。
分配第一剩余资源时,按照各个执行中的漏洞扫描任务的执行顺序,为其分配所需的最多资源,即将第一剩余资源分配给第一个执行中的漏洞扫描任务,若分配完后,仍有剩余资源,该剩余资源为第一剩余资源与分配给第一个执行中的漏洞扫描任务的资源的差值。然后再将当前剩余资源分配给第二个执行中的漏洞扫描任务分配分配,以次分配,直到不存在闲置的资源时结束分配,或者资源还有剩余,但已为所有执行中的漏洞扫描任务分配了所需的最多资源。
步骤S2125,结束分配。
此时,已经没有闲置的资源可以分配,已经实现了资源的最大化利用。
本实施例提供的资源分配方法,在执行中的漏洞扫描任务满足最小并发且为每个执行中的漏洞扫描任务分配的资源不少于预设资源,若仍存在剩余资源,开始按照每个执行中的漏洞扫描任务所需的最多资源为其分配更多的资源,确保在先的执行中的漏洞扫描任务优先分配,尽可能的先执行完在先的漏洞扫描任务,缩短了执行中的漏洞扫描任务的执行时长,减少了闲置资源的浪费,进一步提高了资源的利用率,实现了更优化的资源分配。
在一些实施例中,如图3所示,在步骤S212之后,还可以执行以下步骤:
步骤S301,当分配完所有第二任务时,根据各个第二任务所需的最大资源对所述第一剩余资源进行更新,得到更新后的第二剩余资源。
在步骤S212执行完后,或者资源已经没有剩余,或者为所有执行中的漏洞扫描任务分配的资源已经达到所需的最多资源,若此时资源还有剩余,而第一任务列表中还有待执行的漏洞扫描任务,为了尽快执行完所有漏洞扫描任务,将当前剩余的资源继续分配。首先,获取当前剩余的资源即更新后的第二剩余资源,该第二剩余资源根据第一剩余资源与所有第二任务所需的最大资源的差值确定。
步骤S302,获取执行所述各个第一任务所需的最多资源。
其中,第一任务所需的最多资源为执行所述第一任务中所有子任务时所需资源的总和。
分配第二剩余资源时,不再是为每个待执行的漏洞扫描任务分配预设资源。由于资源分配设备当前已满足最小并发的条件,若仍是给每个待执行的漏洞扫描任务分配预设资源,当待执行的漏洞扫描任务较多时,会导致并发较大。基于此,本实施例中按执行顺序,为待执行的每个漏洞扫描任务分配其所需的最多资源。
步骤S303,当所述第二剩余资源大于或等于所述预设资源时,基于所述各个第一任务所需的最多资源,将所述第二剩余资源按照所述各个第一任务的执行顺序进行分配,直到剩余的第二剩余资源小于所述预设资源或分配完所有第一任务为止。
资源分配设备获取到各个待执行的漏洞扫描任务所需的最多资源后,如果第二剩余资源不小于预设资源,根据第一个待执行的漏洞扫描任务所需的最多资源为其分配资源。当第二剩余资源不小于预设资源,但小于第一个待执行的漏洞扫描任务所需的最多资源时,将所有第二剩余资源分配给第一个待执行的漏洞扫描任务,结束分配。当第二剩余不小于预设资源,且不小于第一个待执行的漏洞扫描任务所需的最多资源时,为第一个待执行的漏洞扫描任务分配其所需的最多资源后,仍存在剩余的资源,继续将该剩余分配给第二个待执行的漏洞扫描任务,直到剩余的第二剩余资源小于预设资源,无法再执行新任务时结束分配,或者,第一任务列表中的所有待执行的漏洞扫描任务都已分配了各自所需的最多资源时结束分配。
本实施例提供的资源分配方法,在执行中的漏洞扫描任务满足最小并发、且已为所有执行中的漏洞扫描任务分配所需的最多资源之后,若仍存在剩余资源,开始为待执行的漏洞扫描任务分配资源以执行该待执行的漏洞扫描任务,进一步缩短了待执行的漏洞扫描任务的等待时长,减少了闲置资源的浪费,进一步提高了资源的利用率,实现了更优化的资源分配。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种漏洞扫描器资源分配方法,能够动态调整资源分配,既可以保证多个漏洞扫描任务的并发执行,也可以最大化利用资源。
基本过程如下:
首先,试验得出各种类型的漏洞扫描任务在不同系统资源下的最大并发量,具体试验过程如下:
需要确定各种类型的扫描任务在不同系统资源下的最大并发量,先准备试验装置:两种常见的机器类型,分别为:4核8G、8核16G。然后针对每种漏洞扫描任务类型,分别执行一定数量的漏洞扫描子任务,记录资源消耗量。在多次试验后,得到每种漏洞扫描任务在不同系统资源下的最大并发,即单独执行一种类型的漏洞扫描任务时,最多可执行的子任务数。统计结果如表1所示:
表1各种类型的漏洞扫描任务在不同系统资源下的最大并发量
系统资源 | 资产发现 | 系统扫描 | Web扫描 | 弱口令扫描 |
4核8G | 10 | 60 | 10 | 30 |
8核16G | 25 | 150 | 25 | 75 |
以4核8G为例,从表中数据可以看出:
当所有子任务都为系统扫描时,并发最高,可以同时执行60个子任务;
当所有子任务都为Web扫描或资产发现时,并发最低,可以同时执行10个子任务。
基于此,将系统资源的总数定为60(并非实际值),则每个系统扫描子任务消耗资源量为系统资源总数60/可同时执行系统扫描子任务数60等于1,每个Web扫描子任务或资产发现子任务的消耗资源量为系统资源总数60/可同时执行Web扫描子任务数或资产发现子任务数10等于6,每个弱口令扫描子任务的消耗资源量为系统资源总数60/可同时执行弱口令扫描子任务数30等于2。
为确保任意类型的子任务均可以被执行,为其分配的资源至少为消耗资源量最大的子任务所消耗的资源量,即上例中的Web扫描子任务数或资产发现子任务。为每个任务最少分配资源为6时,可确保该任务中的任一子任务均可被执行。本实施例中的最少分配资源,即为上述实施例中的预设资源。
其次,明确漏洞扫描任务的执行原则,具体如下:
1)有多个扫描任务时,至少能保证同时执行5个漏洞扫描任务。
如果并发任务量太低,比如1个,如果管理人员下发了多个漏洞扫描任务,但只有1个漏洞扫描任务在执行,其余漏洞扫描任务均需等待,虽然可缩短每个漏洞扫描任务的执行时长,但增加了漏洞扫描任务的等待时长;
如果并发任务量太高,比如10个,管理人员下发多个(至少为10个)漏洞扫描任务,同时有10个漏洞扫描任务在执行,每个任务分配6个资源,该10个漏洞扫描任务占用了所有资源,虽然可缩短漏洞扫描任务的等待时长,但增加了漏洞扫描任务的执行时长。
基于此,本实施例中,设定阈值为5,以达到缩短漏洞扫描任务的执行时长和缩短漏洞扫描任务的等待时长的平衡。
2)为先下发的漏洞扫描任务分配的资源不少于为后下发的漏洞扫描任务分配的资源。
先下发的漏洞扫描任务先被执行完,更符合管理人员常规的直觉,所以在有剩余资源的情况下,应该尽可能地分配给先下发的漏洞扫描任务。
3)一段时间(如3分钟)内管理人员没有下发新的漏洞扫描任务时,将剩余资源分配给执行中的漏洞扫描任务。
当后续管理人员下发新的漏洞扫描任务后,且并发执行中的漏洞扫描任务数少于阈值5时,暂停执行中的漏洞扫描任务的部分子任务,释放盈余资源给管理人员下发的新的漏洞扫描任务。
如果管理人员一段时间(如3分钟)内都没有下发新的漏洞扫描任务,为了尽可能有效利用资源,将剩余资源分配给执行中的漏洞扫描任务。如果后续再下发有新的漏洞扫描任务,为了满足第一个执行原则,将执行中的漏洞扫描任务的盈余资源释放,分配给新的漏洞扫描任务。
最后,确定资源分配算法。
4)执行中的漏洞扫描任务满足最小并发:
图4为本申请实施例提供的满足最小并发的一种实现流程示意图,如图4所示,具体包括以下步骤:
步骤S401,获取已经在执行的任务列表。
这里,可以从数据库获取正在执行中的任务列表。
步骤S402,判断执行任务数是否小于预设阈值。
获取到已经在执行的任务列表后,确定执行任务数,若执行任务数不小于预设阈值,说明已经满足最小并发的条件,进入步骤S409。若执行任务数小于预设阈值,表明还未满足并发的条件,进入步骤S403。这里,预设阈值可以为5。
步骤S403,获取排队的任务列表。
这里,可以从数据库中获取排队的任务列表,排队的任务列表中的排队任务为待执行的任务。
步骤S404,计算执行新任务所需资源量。
这里,新任务为准备执行的任务,新任务的数量根据执行任务数、预设阈值以及排队任务数确定,当排队任务数与执行任务数的加和不大于预设阈值时,所有排队任务均为新任务,执行新任务所需资源量等于排队任务数与预设资源的乘积。当排队任务数与执行任务数的加和大于预设阈值时,新任务数为预设阈值与执行任务数的差值,执行新任务所需资源量等于新任务数与预设资源的乘积。本实施例中,预设资源根据上述最少分配资源,可以取值为6。
步骤S405,计算剩余资源量。
剩余资源量等于系统总资源量与已使用资源量的差值,其中,已使用资源量等于所有执行中的子任务数量与该类型子任务消耗量的乘积的加和。
步骤S406,判断剩余资源是否足够执行新任务。
比较步骤S404与步骤S405,当剩余资源量不小于执行新任务所需资源量时,确定剩余资源足够执行新任务,进入步骤S408。否则,需要释放更多的资源,以确保新任务可以执行,进入步骤S407。
步骤S407,从已经执行的任务中释放资源,直到释放的资源足够执行新任务为止。
释放时,为了保证先执行的任务资源量不少于后执行的任务,按照执行任务的执行顺序的逆序开始释放。如果最后一个执行任务占用资源超过预设资源时,将超出的资源释放。如果释放完仍然不够执行新任务,开始释放倒数第二个执行任务的占用资源,直到释放的资源足够执行新任务为止,然后,资源分配设备开始执行新任务。释放完成后,释放的资源和剩余资源的总和已可以执行新任务,进入步骤S408。
步骤S408,开始执行新任务。
这里,当新任务为多个时,按照其在排队的任务列表中的顺序执行。执行完成后,表明当前已满足最小并发条件,进入步骤S409,以结束资源分配。
步骤S409,结束分配。
5)给执行中的漏洞扫描任务分配资源:
执行完上述4)后,满足了原则1),即至少有5个执行中的漏洞扫描任务,或者所有下发的漏洞扫描任务都在执行中。此时,每个漏洞扫描任务分配的资源为预设资源,资源可能还有剩余,需要加以利用。比如,同时下发了5个任务,每个漏洞扫描任务分配资源为6,总资源量为60,剩余资源30没有利用。继续讲剩余资源分配给执行中的执行中的漏洞扫描任务。
图5为本申请实施例提供的为执行中的漏洞扫描任务分配资源的一种实现流程示意图,如图5所示,具体包括以下步骤:
步骤S501,获取正在执行中的任务。
步骤S502,判断执行中的任务当前占用资源是否大于预设资源。
遍历执行任务列表中的所有任务,判断其当前占用资源是否大于预设资源。如果小于预设资源,表明该执行中的任务分配的资源不足以执行该任务,需要为执行中的任务再次分配资源,进入步骤S503。若不小于预设资源,进入步骤S504。
步骤S503,根据当前占用资源和预设资源为执行中的任务再次分配资源。
步骤S504,计算当前剩余资源。
这里,根据系统资源总量与执行中的子任务获取系统当前消耗资源的差值计算得到当前剩余资源。
步骤S505,判断是否还有资源剩余。
若此时还有资源剩余,根据执行中的任务所需的最多资源为执行中的任务分配资源,为确保先执行的任务分配更多的资源,本实施例中,按照执行中的任务的执行顺序进行分配。
若此时还有资源剩余,表明还可以继续分配资源给执行中的任务,进入步骤S506。若此时剩余已分配完,表明没有闲置的资源,进入步骤S507,以结束资源分配。
步骤S506,按执行顺序为执行中的任务分配资源。
步骤S507,结束分配。
6)给待执行的漏洞扫描任务分配资源:
执行完上述5),此时,或者资源已经没有剩余,或者执行中的漏洞扫描任务占用资源比较少,还有剩余。如果还有剩余且大于预设资源时,需要将剩余资源分配给待执行的漏洞扫描任务。
图6为本申请实施例提供的待执行的漏洞扫描任务分配资源的一种实现流程示意图,如图6所示,具体包括以下步骤:
步骤S601,获取系统剩余资源;
步骤S602,判断系统剩余资源是否小于预设资源。
若系统剩余资源小于预设资源,表明资源利用已达到极限,结束分配,进入步骤S605。若系统剩余资源部小于预设资源,表明还可以执行新任务,进入步骤S603。
步骤S603,获取排队任务列表中各个排队任务所需资源。
这里,排队任务所需资源为其包括的所有子任务占用资源总和。
步骤S604,按排队顺序为排队任务分配资源,开始执行已分配资源的排队任务。
根据各个将所有剩余资源分配给排队的第一个任务,如果该任务用不完,则继续分配给后续排队任务,直到资源不能再分为止。
当为排队任务分配资源结束后,进入步骤S605。这里,结束分配资源,可以是已不存在未分配资源的排队任务,或者可以是已不存在可以执行排队任务的剩余资源。
步骤S605,结束分配。
确定资源分配算法后,按照上述4)至6)执行,可以保证资源得到充分利用。但是,仍存在一个问题:若4)至6)执行频率过高,当管理人员下发一个漏洞扫描任务时,该漏洞扫描任务很快占用全部资源。管理人员再次下发任务时,暂停第一个漏洞扫描任务的部分子任务,释放资源给第二个漏洞扫描任务,暂停释放资源操作出现频繁,降低了漏洞扫描任务的执行效率。
本实施例为了解决该问题,每隔一个短周期执行一次4),每隔一个长周期执行一次4)至6),例如:每10秒执行一次4),可以保证管理人员下发的漏洞扫描任务能够快速得到响应。当管理人员3分钟内都没有下发新的漏洞扫描任务时,可以执行4)至6)来保证资源的高效充分利用。
下面说明实现本申请实施例的装置的示例性应用,本申请实施例提供的装置可以实施为资源分配设备。下面,将说明装置实施为资源分配设备时涵盖资源分配设备的示例性应用。
参见图7,图7为本申请实施例提供的资源分配方法的网络架构示意图,如图7所示,在该网络架构中至少包括资源分配设备100、服务器200、网络300和被扫描设备400。为实现支撑一个示例性应用,资源分配设备100通过网络300连接服务器200,被扫描设备400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。
资源分配设备100基于管理人员发送的漏洞扫描操作指令,确定待执行的漏洞扫描任务,基于待执行的漏洞扫描任务向服务器200发送用于获取被扫描信息的请求,服务器200基于用于获取被扫描信息的请求中携带的信息向对应的被扫描设备400发送用于获取被扫描信息的请求,并接收被扫描设备400返回的被扫描信息,该被扫描信息是由被扫描设备400根据用于获取被扫描信息的请求返回的被扫描信息。服务器200接收到被扫描信息后,将其返回给资源分配设备100,资源分配设备100开始执行待执行的漏洞扫描任务,并实时的根据正在执行中的漏洞扫描任务,动态的分配剩余资源给待执行的漏洞扫描任务或执行中的漏洞扫描任务。
本申请实施例提供的装置可以实施为硬件或者软硬件结合的方式,下面说明本申请实施例提供的装置的各种示例性实施。
根据图8示出的资源分配设备的示例性结构,可以预见资源分配设备100的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用的特殊需求。
图8所示的资源分配设备100包括:至少一个处理器110、存储器140、至少一个网络接口120和用户接口130。资源分配设备100中的每个组件通过总线系统150耦合在一起。可理解,总线系统150用于实现这些组件之间的连接通信。总线系统150除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统150。
用户接口130可以包括显示器、键盘、鼠标、触感板和触摸屏等。
存储器140可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器140旨在包括任意适合类型的存储器。
本申请实施例中的存储器140能够存储数据以支持资源分配设备100的操作。这些数据的示例包括:用于在资源分配设备100上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序。
作为本申请实施例提供的方法采用软件实施的示例,本申请实施例所提供的方法可以直接体现为由处理器110执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器140,处理器110读取存储器140中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器110以及连接到总线150的其他组件)完成本申请实施例提供的方法。
作为示例,处理器110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
下面继续说明本申请实施例提供的资源分配装置90的实施为软件模块的示例性结构,在一些实施例中,如图8所示,存储在存储器140的资源分配装置90中的软件模块可以包括:
第一获取模块91,用于获取第一任务列表和第二任务列表。
其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务。
第一确定模块92,用于当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务。
第一分配模块93,用于为各个第一目标任务分配预设资源以执行所述各个第一目标任务。
第二分配模块94,用于当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配。
在一些实施例中,所述第一确定模块92,进一步包括:
第一确定单元,用于每隔第一预设周期,根据所述预设阈值、所述第二任务数和所述第一任务列表中的第一任务数,确定第一目标任务数N。这里,所述N为不大于所述预设阈值的正整数。
第二确定单元,用于按照第一任务列表中各个第一任务的执行顺序,将前N个第一任务确定为第一目标任务子列表中的各个第一目标任务。
在一些实施例中,所述第一分配模块93,进一步包括:
第三确定单元,用于基于所述预设资源和第一目标任务数,确定执行所述各个第一目标任务至少所需资源。
第一获取单元,用于获取当前剩余资源。
第一分配单元,用于当所述当前剩余资源大于或等于执行所述各个第一目标任务至少所需资源时,从所述当前剩余资源中为各个第一目标任务分配预设资源以执行所述各个第一目标任务。
在一些实施例中,所述第一分配模块93,进一步包括:
第二获取单元,用于当所述当前剩余资源小于执行所述各个第一目标任务至少所需资源时,获取各个第二任务的当前占用资源。
第四确定单元,用于基于各个第二任务的当前占用资源和预设资源确定各个第二任务的盈余资源。
释放单元,用于按照各个第二任务的执行顺序的逆序释放各个第二任务的盈余资源,直到释放的盈余资源与剩余资源的总和大于或等于执行所述各个第一目标任务至少所需资源为止。
在一些实施例中,所述资源分配装置90,还包括:
第二获取模块,用于每隔第二预设周期,获取剩余资源和各个第二任务的当前占用资源。
第二确定模块,用于当存在当前占用资源小于预设资源的第二目标任务时,基于所述预设资源和所述当前占用资源确定所述第二目标任务的补充资源。
第三分配模块,用于从所述剩余资源中为所述第二目标任务分配所述补充资源。
在一些实施例中,所述第二分配模块94,进一步包括:
更新单元,用于根据所述补充资源对所述剩余资源进行更新,得到更新后的第一剩余资源。
第三获取单元,用于当所述第一剩余资源大于零时,获取执行所述各个第二任务所需的最多资源。其中,第二任务所需的最多资源为执行所述第二任务中所有子任务时所需资源的总和。
第二分配单元,用于基于所述各个第二任务所需的最多资源,将所述第一剩余资源按照所述各个第二任务的执行顺序进行分配,直到分配完所有第一剩余资源或分配完所有第二任务为止。
在一些实施例中,所述资源分配装置90,还包括:
更新模块,用于当分配完所有第二任务时,根据各个第二任务所需的最大资源对所述第一剩余资源进行更新,得到更新后的第二剩余资源。
第三获取模块,用于获取执行所述各个第一任务所需的最多资源。其中,第一任务所需的最多资源为执行所述第一任务中所有子任务时所需资源的总和。
第四分配模块,用于当所述第二剩余资源大于或等于所述预设资源时,基于所述各个第一任务所需的最多资源,将所述第二剩余资源按照所述各个第一任务的执行顺序进行分配,直到剩余的第二剩余资源小于所述预设资源或分配完所有第一任务为止。
这里需要指出的是:以上资源分配装置实施例项的描述,与上述方法描述是类似的,具有同方法实施例相同的有益效果。对于本申请资源分配装置实施例中未披露的技术细节,本领域的技术人员请参照本申请方法实施例的描述而理解。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图1至图6示出的方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种资源分配方法,其特征在于,包括:
获取第一任务列表和第二任务列表,其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务;
当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务;
为各个第一目标任务分配预设资源以执行所述各个第一目标任务;
当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配。
2.根据权利要求1所述的方法,其特征在于,所述当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务,包括:
每隔第一预设周期,根据所述预设阈值、所述第二任务数和所述第一任务列表中的第一任务数,确定第一目标任务数N,所述N为不大于所述预设阈值的正整数;
按照第一任务列表中各个第一任务的执行顺序,将前N个第一任务确定为第一目标任务子列表中的各个第一目标任务。
3.根据权利要求2所述的方法,其特征在于,所述为各个第一目标任务分配预设资源以执行所述各个第一目标任务,包括:
基于所述预设资源和第一目标任务数,确定执行所述各个第一目标任务至少所需资源;
获取当前剩余资源;
当所述当前剩余资源大于或等于执行所述各个第一目标任务至少所需资源时,从所述当前剩余资源中为各个第一目标任务分配预设资源以执行所述各个第一目标任务。
4.根据权利要求3所述的方法,其特征在于,还包括:
当所述当前剩余资源小于执行所述各个第一目标任务至少所需资源时,获取各个第二任务的当前占用资源;
基于各个第二任务的当前占用资源和预设资源确定各个第二任务的盈余资源;
按照各个第二任务的执行顺序的逆序释放各个第二任务的盈余资源,直到释放的盈余资源与所述当前剩余资源的总和大于或等于执行所述各个第一目标任务至少所需资源为止。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时之后,将剩余资源按照各个第二任务的执行顺序进行分配之前,方法还包括:
每隔第二预设周期,获取剩余资源和各个第二任务的当前占用资源;
当存在当前占用资源小于预设资源的第二目标任务时,基于所述预设资源和所述当前占用资源确定所述第二目标任务的补充资源;
从所述剩余资源中为所述第二目标任务分配所述补充资源。
6.根据权利要求5所述的方法,其特征在于,所述将剩余资源按照各个第二任务的执行顺序进行分配,包括:
根据所述补充资源对所述剩余资源进行更新,得到更新后的第一剩余资源;
当所述第一剩余资源大于零时,获取执行所述各个第二任务所需的最多资源,其中,第二任务所需的最多资源为执行所述第二任务中所有子任务时所需资源的总和;
基于所述各个第二任务所需的最多资源,将所述第一剩余资源按照所述各个第二任务的执行顺序进行分配,直到分配完所有第一剩余资源或分配完所有第二任务为止。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当分配完所有第二任务时,根据各个第二任务所需的最大资源对所述第一剩余资源进行更新,得到更新后的第二剩余资源;
获取执行所述各个第一任务所需的最多资源,其中,第一任务所需的最多资源为执行所述第一任务中所有子任务时所需资源的总和;
当所述第二剩余资源大于或等于所述预设资源时,基于所述各个第一任务所需的最多资源,将所述第二剩余资源按照所述各个第一任务的执行顺序进行分配,直到剩余的第二剩余资源小于所述预设资源或分配完所有第一任务为止。
8.一种资源分配装置,其特征在于,包括:
第一获取模块,用于获取第一任务列表和第二任务列表,其中,所述第一任务列表中的各个第一任务为待执行的漏洞扫描任务,第二任务列表中的各个第二任务为执行中的漏洞扫描任务;
第一确定模块,用于当所述第二任务列表中的第二任务数小于预设阈值时,从所述第一任务列表中确定第一目标任务;
第一分配模块,用于为各个第一目标任务分配预设资源以执行所述各个第一目标任务;
第二分配模块,用于当为各个第一目标任务分配预设资源后,或者当所述第二任务列表中的第二任务数大于或等于预设阈值时,将剩余资源按照各个第二任务的执行顺序进行分配。
9.一种资源分配设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399734.0A CN111064746A (zh) | 2019-12-30 | 2019-12-30 | 一种资源分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911399734.0A CN111064746A (zh) | 2019-12-30 | 2019-12-30 | 一种资源分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111064746A true CN111064746A (zh) | 2020-04-24 |
Family
ID=70304900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911399734.0A Pending CN111064746A (zh) | 2019-12-30 | 2019-12-30 | 一种资源分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064746A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269999A (zh) * | 2020-11-04 | 2021-01-26 | 杭州迪普科技股份有限公司 | 一种漏洞扫描任务调度的方法、装置、设备和介质 |
CN112508449A (zh) * | 2020-12-21 | 2021-03-16 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN112685158A (zh) * | 2020-12-29 | 2021-04-20 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
CN113807621A (zh) * | 2020-06-12 | 2021-12-17 | 北京四维图新科技股份有限公司 | 数据处理方法、装置及设备 |
CN114040380A (zh) * | 2021-11-08 | 2022-02-11 | 北京百度网讯科技有限公司 | 一种数据下发方法、装置、电子设备、介质及产品 |
CN116305154A (zh) * | 2023-03-08 | 2023-06-23 | 北京航天驭星科技有限公司 | 一种卫星测控软件的漏洞管理方法及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699445A (zh) * | 2013-12-19 | 2014-04-02 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
CN104461710A (zh) * | 2014-12-12 | 2015-03-25 | 北京国双科技有限公司 | 任务处理方法及装置 |
CN106033371A (zh) * | 2015-03-13 | 2016-10-19 | 杭州海康威视数字技术股份有限公司 | 一种视频分析任务的调度方法及系统 |
CN106557363A (zh) * | 2016-12-05 | 2017-04-05 | 广发证券股份有限公司 | 一种大数据任务调度的系统以及方法 |
CN108027889A (zh) * | 2016-01-25 | 2018-05-11 | 华为技术有限公司 | 一种用于增量式学习云系统的训练、调度方法及相关设备 |
CN109819057A (zh) * | 2019-04-08 | 2019-05-28 | 科大讯飞股份有限公司 | 一种负载均衡方法及系统 |
CN110362407A (zh) * | 2019-07-19 | 2019-10-22 | 中国工商银行股份有限公司 | 计算资源调度方法及装置 |
US20190324819A1 (en) * | 2016-12-30 | 2019-10-24 | Huawei Technologies Co., Ltd. | Distributed-system task assignment method and apparatus |
CN110543359A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种任务队列运行装置 |
-
2019
- 2019-12-30 CN CN201911399734.0A patent/CN111064746A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699445A (zh) * | 2013-12-19 | 2014-04-02 | 北京奇艺世纪科技有限公司 | 一种任务调度方法、装置及系统 |
CN104461710A (zh) * | 2014-12-12 | 2015-03-25 | 北京国双科技有限公司 | 任务处理方法及装置 |
CN106033371A (zh) * | 2015-03-13 | 2016-10-19 | 杭州海康威视数字技术股份有限公司 | 一种视频分析任务的调度方法及系统 |
CN108027889A (zh) * | 2016-01-25 | 2018-05-11 | 华为技术有限公司 | 一种用于增量式学习云系统的训练、调度方法及相关设备 |
CN106557363A (zh) * | 2016-12-05 | 2017-04-05 | 广发证券股份有限公司 | 一种大数据任务调度的系统以及方法 |
US20190324819A1 (en) * | 2016-12-30 | 2019-10-24 | Huawei Technologies Co., Ltd. | Distributed-system task assignment method and apparatus |
CN109819057A (zh) * | 2019-04-08 | 2019-05-28 | 科大讯飞股份有限公司 | 一种负载均衡方法及系统 |
CN110543359A (zh) * | 2019-07-03 | 2019-12-06 | 威富通科技有限公司 | 一种任务队列运行装置 |
CN110362407A (zh) * | 2019-07-19 | 2019-10-22 | 中国工商银行股份有限公司 | 计算资源调度方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113807621A (zh) * | 2020-06-12 | 2021-12-17 | 北京四维图新科技股份有限公司 | 数据处理方法、装置及设备 |
CN113807621B (zh) * | 2020-06-12 | 2024-03-19 | 北京四维图新科技股份有限公司 | 数据处理方法、装置及设备 |
CN112269999A (zh) * | 2020-11-04 | 2021-01-26 | 杭州迪普科技股份有限公司 | 一种漏洞扫描任务调度的方法、装置、设备和介质 |
CN112508449A (zh) * | 2020-12-21 | 2021-03-16 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN112508449B (zh) * | 2020-12-21 | 2023-06-30 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN112685158A (zh) * | 2020-12-29 | 2021-04-20 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
CN112685158B (zh) * | 2020-12-29 | 2023-08-04 | 杭州海康威视数字技术股份有限公司 | 一种任务调度方法、装置、电子设备及存储介质 |
CN114040380A (zh) * | 2021-11-08 | 2022-02-11 | 北京百度网讯科技有限公司 | 一种数据下发方法、装置、电子设备、介质及产品 |
CN114040380B (zh) * | 2021-11-08 | 2023-08-01 | 北京百度网讯科技有限公司 | 一种数据下发方法、装置、电子设备、介质及产品 |
CN116305154A (zh) * | 2023-03-08 | 2023-06-23 | 北京航天驭星科技有限公司 | 一种卫星测控软件的漏洞管理方法及相关设备 |
CN116305154B (zh) * | 2023-03-08 | 2023-11-21 | 北京航天驭星科技有限公司 | 一种卫星测控软件的漏洞管理方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064746A (zh) | 一种资源分配方法、装置、设备及存储介质 | |
US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
EP3425502B1 (en) | Task scheduling method and device | |
US10896065B2 (en) | Efficient critical thread scheduling for non privileged thread requests | |
US8499010B2 (en) | Garbage collection in a multiple virtual machine environment | |
US20100043009A1 (en) | Resource Allocation in Multi-Core Environment | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
US8239872B2 (en) | Method and system for controlling distribution of work items to threads in a server | |
US20150128136A1 (en) | Graphics processing unit controller, host system, and methods | |
CN109240825A (zh) | 弹性任务调度方法、装置、设备及计算机可读存储介质 | |
CN111459622B (zh) | 调度虚拟cpu的方法、装置、计算机设备和存储介质 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
JP5790758B2 (ja) | スケジューリング方法およびスケジューリングシステム | |
CN111625339A (zh) | 集群资源调度方法、装置、介质和计算设备 | |
US8001341B2 (en) | Managing dynamically allocated memory in a computer system | |
JP4862056B2 (ja) | 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法 | |
US20150212859A1 (en) | Graphics processing unit controller, host system, and methods | |
JP2017027367A (ja) | 画像形成装置、リソース管理装置、リソース管理方法、画像形成装置およびプログラム | |
JP5613578B2 (ja) | 仮想化環境リソース管理構成変更システム、及びプログラム | |
KR20230063015A (ko) | 가상화 서버에서 가상머신 cpu 자원을 관리하는 장치 및 방법 | |
US9367326B2 (en) | Multiprocessor system and task allocation method | |
GB2504812A (en) | Load balancing in a SAP (RTM) system for processors allocated to data intervals based on system load | |
CN114489978A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN112306681A (zh) | 一种资源控制方法、装置及电子设备 | |
CN111063405B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200424 |
|
RJ01 | Rejection of invention patent application after publication |