CN111367647A - 一种任务指派方法及装置 - Google Patents

一种任务指派方法及装置 Download PDF

Info

Publication number
CN111367647A
CN111367647A CN202010243555.4A CN202010243555A CN111367647A CN 111367647 A CN111367647 A CN 111367647A CN 202010243555 A CN202010243555 A CN 202010243555A CN 111367647 A CN111367647 A CN 111367647A
Authority
CN
China
Prior art keywords
task
execution
subtask
execution device
splitting
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.)
Granted
Application number
CN202010243555.4A
Other languages
English (en)
Other versions
CN111367647B (zh
Inventor
古琳莹
刘洋
尹静
柳絮
程旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nsfocus Technologies Inc, Nsfocus Technologies Group Co Ltd filed Critical Nsfocus Technologies Inc
Priority to CN202010243555.4A priority Critical patent/CN111367647B/zh
Publication of CN111367647A publication Critical patent/CN111367647A/zh
Application granted granted Critical
Publication of CN111367647B publication Critical patent/CN111367647B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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 load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种任务指派方法及装置,在该方法中,任务调度装置在进行下一次任务指派时,会结合接收的每个任务执行装置在执行上一次所分配的任务的执行情况,对此次的分配任务进行拆分以及给每个任务执行装置分配子任务,这样,通过一种自学习的方式,进而达到最优的任务拆分和任务分配,可以提高扫描效率。

Description

一种任务指派方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种任务指派方法及装置。
背景技术
安全管理中心是一个漏洞运维管理平台,其实现的其中一种功能是:通过智能任务调度装置,智能指派扫描任务,以检测该平台所管理的设备是否存在漏洞。作为一种示例,该智能任务调度装置可以包括1个中心节点和n个引擎节点,扫描任务在中心节点上创建,然后,中心节点根据扫描任务的大小、任务类型等任务特性,以及引擎节点的中央处理器(central processing unit,CPU)、内存等综合特性,把扫描任务拆分成多个子任务,分配给合适的引擎执行。
一种相关的技术中,通常会将扫描任务按照和引擎分别进行量化,例如,将扫描任务按照所包括的网际互连协议(internet protocol,IP)的个数、统一资源定位系统(uniform resource locator,URL)的个数进行量化;将每个引擎按引擎的cpu、内存、正在运行任务数等因素进行量化,然后根据量化后的扫描任务和量化后的引擎进行智能任务调度。这样做的缺陷是:每个扫描任务在执行过程中占用引擎的资源会有很大差异,例如,基于url的网站扫描,不同站点规模不同,在两个引擎上分别分配了10个子任务,但是由于第一个引擎中每个子任务中站点的规模均较大,则第一个引擎扫描其所分配的10个子任务所花费的时间,将远大于第二个引擎所花费的时间;又例如,基于IP的主机扫描,不同的主机其所开放的端口的数量、服务的类型不同,若用于执行扫描任务的引擎上分配的任务中所包括的主机的端口数和/或服务的类型相差较大,也会导致不同引擎执行任务所花费的时间有较大差异,从而导致整个扫描任务的扫描效率低。
因此,如何提高扫描效率是目前亟待解决的问题。
发明内容
本发明提供一种任务指派方法及装置,用以提高安全管理中心在执行扫描任务时的扫描效率。
本发明第一方面提供了一种任务指派方法,所述方法包括:
获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务;
根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
在一种可能的实施方式中,所述每个任务执行装置在第二时刻执行第二分配任务时的执行情况是指,所述每个任务执行装置在执行所分配的子任务时,完成所述所分配的子任务所用的执行时长以及完成所述所分配的子任务所使用的计算资源;所述所分配的子任务是根据与所述第二分配任务对应的多个第二子任务以及所述每个任务执行装置的初始执行效率,进行最优化求解得到的,所述多个第二子任务是根据预设的任务拆分规则进行拆分的,其中一个任务执行装置的初始执行效率是根据所述任务执行装置所分配的子任务的容量和所述任务执行装置的属性信息确定的。
在一种可能的实施方式中,所述根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务,包括:
根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,每个新的任务拆分规则的粒度小于所述预设的任务拆分规则的粒度;
根据所述至少一个新的任务拆分规则,将所述第一分配任务拆分为所述多个第一子任务。
在一种可能的实施方式中,所述所分配的子任务为主机扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的网际互连协议IP或端口的总数量;
所述任务执行装置扫描每一个存活的IP或端口所用的执行时长;
所述任务执行装置扫描每一个存活的IP或端口时发现的漏洞的总数量。
在一种可能的实施方式中,所述根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,包括:
将第一数量的存活的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第二数量的存在漏洞的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
在一种可能的实施方式中,所述所分配的子任务为网页扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的服务组件或URL的总数量;
所述任务执行装置扫描每一个存活的服务组件或URL所用的执行时长;
所述任务执行装置扫描每一个存活的服务组件或URL时发现的漏洞的总数量。
在一种可能的实施方式中,所述根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,包括:
将第三数量的存活的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第四数量的存在漏洞的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
在一种可能的实施方式中,所述根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,包括:
根据所述每个任务执行装置的所述执行情况,确定对每个任务执行装置的所述初始执行效率进行加权运算的权重值;
根据所述权重值更新每个任务执行装置的所述初始执行效率,得到更新后的执行效率;
根据所述多个第二子任务以及所述每个任务执行装置更新后的执行效率,进行最优化求解,从而将所述多个第二子任务指派给所述至少两个任务执行装置。
在一种可能的实施方式中,所述第一分配任务为主机扫描任务时,所述权重值的计算方式满足如下表达式:
Figure BDA0002433350680000041
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,h为执行所述第i个第一子任务所扫描的存活的IP或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的IP或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
在一种可能的实施方式中,所述第一分配任务为网页扫描任务时,所述权重值的计算方式满足如下表达式:
Figure BDA0002433350680000042
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,l为所述第i个第一子任务所包括的总的服务组件或端口的数量,n为执行所述第i个第一子任务所扫描的存活的服务组件或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的服务组件或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
本发明第二方面提供了一种任务指派装置,该装置包括:
获取模块,用于获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
拆分模块,用于根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务;
分配模块,用于根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
在一种可能的实施方式中,所述每个任务执行装置在第二时刻执行第二分配任务时的执行情况是指,所述每个任务执行装置在执行所分配的子任务时,完成所述所分配的子任务所用的执行时长以及完成所述所分配的子任务所使用的计算资源;所述所分配的子任务是根据与所述第二分配任务对应的多个第二子任务以及所述每个任务执行装置的初始执行效率,进行最优化求解得到的,所述多个第二子任务是根据预设的任务拆分规则进行拆分的,其中一个任务执行装置的初始执行效率是根据所述任务执行装置所分配的子任务的容量和所述任务执行装置的属性信息确定的。
在一种可能的实施方式中,所述拆分模块具体用于:
根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,每个新的任务拆分规则的粒度小于所述预设的任务拆分规则的粒度;
根据所述至少一个新的任务拆分规则,将所述第一分配任务拆分为所述多个第一子任务。
在一种可能的实施方式中,所述所分配的子任务为主机扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的网际互连协议IP或端口的总数量;
所述任务执行装置扫描每一个存活的IP或端口所用的执行时长;
所述任务执行装置扫描每一个存活的IP或端口时发现的漏洞的总数量。
在一种可能的实施方式中,所述拆分模块具体用于:
将第一数量的存活的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第二数量的存在漏洞的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
在一种可能的实施方式中,所述所分配的子任务为网页扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的服务组件或URL的总数量;
所述任务执行装置扫描每一个存活的服务组件或URL所用的执行时长;
所述任务执行装置扫描每一个存活的服务组件或URL时发现的漏洞的总数量。
在一种可能的实施方式中,所述拆分模块具体用于:
将第三数量的存活的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第四数量的存在漏洞的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
在一种可能的实施方式中,所分配模块具体用于:
根据所述每个任务执行装置的所述执行情况,确定对每个任务执行装置的所述初始执行效率进行加权运算的权重值;
根据所述权重值更新每个任务执行装置的所述初始执行效率,得到更新后的执行效率;
根据所述多个第二子任务以及所述每个任务执行装置更新后的执行效率,进行最优化求解,从而将所述多个第二子任务指派给所述至少两个任务执行装置。
在一种可能的实施方式中,所述第一分配任务为主机扫描任务时,所述权重值的计算方式满足如下表达式:
Figure BDA0002433350680000071
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,h为执行所述第i个第一子任务所扫描的存活的IP或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的IP或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
在一种可能的实施方式中,所述第一分配任务为网页扫描任务时,所述权重值的计算方式满足如下表达式:
Figure BDA0002433350680000072
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,l为所述第i个第一子任务所包括的总的服务组件或端口的数量,n为执行所述第i个第一子任务所扫描的存活的服务组件或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的服务组件或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
本发明第三方面提供一种任务指派装置,该装置包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如第一方面中任一项所述的方法。
本发明第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。
第五方面,本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本发明实施例上述第一方面以及第一方面任一项所述的方法。
本发明的实施例提供的技术方案至少带来以下有益效果:
在本申请提供的技术方案可以在任务调度装置中执行,在该方案中,每个任务执行装置在执行其所分配的任务时,会记录执行该任务的执行时长以及所使用的计算资源等执行情况,然后,会将该执行情况反馈至任务调度装置。任务调度装置在进行下一次任务指派时,可以标记为第一分配任务,会结合接收的每个任务执行装置在执行上一次所分配的任务的执行情况,可以标记为第二分配任务的执行情况,对此次的分配任务(即第一分配任务)进行拆分以及给每个任务执行装置分配子任务,这样,通过一种自学习的方式,进而达到最优的任务拆分和任务分配,可以提高扫描效率。
附图说明
图1为本发明实施例中提供的日志报表的统计方法的一种示例的流程图;
图2为本发明实施例中体用的对任务进行拆分的一种示例的流程图;
图3为本发明实施例中提供的日志报表的统计装置的一种示例的结构示意图;
图4为本发明实施例中提供的日志报表的统计装置的另一种示例的结构示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
为了更好的了解上述技术方案,对本发明实施例的设计思想进行简要介绍。
首先,获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
然后,根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务;以及,根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
在上述技术方案中,每个任务执行装置在执行其所分配的任务时,会记录执行该任务的执行时长以及所使用的计算资源等执行情况,然后,会将该执行情况反馈至任务调度装置。任务调度装置在进行下一次任务指派时,可以标记为第一分配任务,会结合接收的每个任务执行装置在执行上一次所分配的任务的执行情况,可以标记为第二分配任务的执行情况,对此次的分配任务(即第一分配任务)进行拆分以及给每个任务执行装置分配子任务,这样,通过一种自学习的方式,进而达到最优的任务拆分和任务分配,可以提高扫描效率。
请参考图1,为本发明实施例提供的一种任务指派方法的流程图。该方法可以应用在任务调度装置中,例如,可以是漏洞运维管理平台的智能任务调度装置,或者也可以是其他用于分配任务的装置,在此不作限制。下面,对图1所示的流程图进行详细说明。
步骤101、获取第二时刻的第二分配任务,将所述第二分配任务拆分并分配给至少两个任务执行装置。
在本申请实施例中,该第二时刻可以是任务调度装置第一次进行任务分配的时刻,该第二分配任务可以是任务调度装置首次进行分配的任务。或者,该第二时刻也可以是任务调度装置进行任务分配的任意一个时刻,例如,第2次进行任务分配的时刻或者第3次进行任务分配的时刻等,相应地,该第二分配任务则是任务调度装置在第二时刻进行分配的任务。需要说明的是,若第二时刻为任务调度装置进行任务分配的任意一个时刻,则在本申请实施例中,不限制在第二时刻之前,任务调度装置进行任务分配的方式。为方便说明,下文中,以第二时刻为任务调度装置第一次进行任务分配的时刻,该第二分配任务为任务调度装置首次进行分配的任务为例。
在本申请实施例中,任务调度装置在首次进行任务分配时,可以采用多种分配方式中的任意一种进行任务分配。例如,可以采用匈牙利算法或者蚁群算法等进行任务分配,在此不作限制。
作为一种示例,以任务调度装置采用匈牙利算法进行首次任务分配。该匈牙利算法的主要步骤包括如下步骤:首先,按照预设的任务拆分规则将第二分配任务进行拆分,从而得到多个第二子任务,然后,考虑各个第二子任务的容量和各个任务执行装置的属性信息,该属性信息可以是各个任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载,获取每个任务执行装置的初始执行效率,建立包括每个任务执行装置的初始执行效率以及该多个第二子任务的求解方程,进行最优化求解,确定将该多个第二子任务分配给该至少两个任务执行装置的分配结果,从而将对应的第二子任务分配给对应的任务执行装置进行执行。需要说明的是,该多个第二子任务的数量与该至少两个任务执行装置的数量之间没有关联,该多个第二子任务的数量可以少于该至少两个任务执行装置的数量,或者,该多个第二子任务的数量也可以多于或者等于该至少两个任务执行装置的数量。且,每个第二子任务可以由一个任务执行装置执行,也可以由多个任务执行装置执行,在此不作限制。
例如,任务调度装置获取的第二分配任务为任务T1,任务T1的类型可以是主机扫描任务类型,也可以是网页扫描任务类型,当然,也可以是其他类型的任务,在此不作限制。任务调度装置在获取该任务T1后,首先将任务T1按照预设的拆分规则进行拆分,该预设的拆分规则可以如下:
针对主机扫描任务类型:
a)、每个拆分后的子任务包含的IP的数量不能超过256;
b)、包括同一个c段的IP拆分到一个子任务中。
针对网页扫描任务类型:
a)、每个拆分后的子任务包含URL的数量不超过5个。
例如,若任务T1为主机扫描任务类型,则任务T1包括需要进行扫描的主机的IP,例如任务T1包括的IP为172.16.0.0~172.28.255.255;若任务T1为网页扫描任务类型,则任务T1包括需要进行扫描的网页的URL,例如,包括http://[fe80::1a03:73ff:feaf:8b3c:8080]、https://[fe80::]:80、https://www.nsfocus.com、https://192.168.1.1,拆分后的子任务中包括的IP或者URL的数量不超过预设的拆分规则中指示的阈值,其中,每个子任务包括的IP的数量或者包括的URL的数量可以理解为子任务的容量。
c段是指用于256个节点以下的小型网络的单点网络通信的IP地址段。例如,针对IP:10.65.128.1、10.65.128.2、10.65.1.2、10.67.1.1与255.255.255.0,首先获取每个IP对应的网段,10.65.128.1与10.65.128.2属于10.65.128.*网段,而10.65.1.2属于10.65.1.*网段,10.67.1.1属于10.67.1.*网段,那么我们就认为10.65.128.1和10.65.128.2是同一个C网段的IP。
采用上述方式,对第二分配任务进行拆分后,得到n个第二子任务。假设至少两个任务执行装置的数量为m,则可以得到一个n*m的初始效率矩阵,其中,可以用行来表示子任务,可以用列来表示任务执行装置,该初始效率可以如表1所示。
表1
d1 d2 d3 ... ... dm-1 dm
t1 C11 C12 C13 . . . C1m
t2 C21 C22 C23 . . . C2m
t3 C31 C32 C33 . . . C3m
... ... ... ... . . . ...
tn-1 C(n-1)1 C(n-1)2 C(n-1)3 . . . C(n-1)m
tn Cn1 Cn2 Cn3 . . . Cnm
其中,Cij用于指示第i个子任务由第j个任务执行装置执行时初始执行效率,i为1~n中的任意一个取值,j为1~m中的任意一个取值。
作为一种示例,初始执行效率定义由:子任务容量大小dj_capacity、任务执行装置可运行的最大任务数dj_max_tasks、任务执行装置正在运行的任务数dj_running_tasks、任务执行装置的cpu使用情况dj_cpu、任务执行装置的内存mem(dj_mem)使用情况来确定。其计算方法满足如下表达式:
Figure BDA0002433350680000121
其中,如果dj_max_tasks-dj_running_tasks=0,该任务执行装置无法扫描该子任务,初始执行效率可以记做无穷大,反之按上述公式计算初始执行效率。dj_capacity*w1+dj_cpu*w2+dj_mem*w3是对dj的资源使用情况的一个全局体现,w1、w2、w3是预设的权重,dj_max_tasks-dj_running_task是该任务执行装置的空闲任务数,使用该公式,当dj资源负载使用越高,Cij越大;空闲任务率(空闲任务数/总任务数)越小,Cij越大,反之,Cij越小。
最后,求解包括每个任务执行装置的初始执行效率以及该多个第二子任务的方程,该方程可以如以下公式:
Figure BDA0002433350680000131
其中,
Figure BDA0002433350680000132
表示第i引擎只能完成且必须完成第j项任务时为0,否则为1,
Figure BDA0002433350680000133
表示第j项任务只能指派给且必须指派给i去完成时为0,否则为1。由于上述初始执行效率矩阵中存在无穷大元素,因此,上述求解过程可能无法找到min,鉴于将矩阵每一行和每一列分别减去各行和各列的最小元素得到最优解是相同的原理,在最后计算min时,也可以去除每一行和每一列中无穷大元素,然后进行求解。但是去除的任务本次无法分配到合适的引擎,计入下次求解过程。
当通过求解上述方程得到任务分配结果后,则将对应的子任务指示给对应的任务执行装置进行执行。当每个任务执行装置执行完成后,会将每个任务执行装置执行其所分配的子任务的执行结果以及所述每个任务执行装置在执行所分配的子任务的执行情况反馈给任务调度装置。其中,每个任务执行装置在执行所分配的子任务的执行情况是指,所述每个任务执行装置在执行所分配的子任务时,完成所述所分配的子任务所用的执行时长以及完成所述所分配的子任务所使用的计算资源。
需要说明的是,所使用的计算资源可以理解为所使用的CPU资源和/或内存mem资源。若所分配的子任务为主机扫描任务,所述完成所述所分配的子任务所用的执行时长可以包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的网际互连协议IP或端口的总数量;
所述任务执行装置扫描每一个存活的IP或端口所用的执行时长;
所述任务执行装置扫描每一个存活的IP或端口时发现的漏洞的总数量。
若所分配的子任务为网页扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的服务组件或URL的总数量;
所述任务执行装置扫描每一个存活的服务组件或URL所用的执行时长;
所述任务执行装置扫描每一个存活的服务组件或URL时发现的漏洞的总数量。
当然,根据子任务的类型不同,子任务所用的执行时长所包括的内容也会发生变化,在此不一一举例。
例如,子任务t1包含256个IP,任务执行装置在执行子任务t1时发现该256个IP中实际存活的IP的数量仅10个,则任务执行装置需要记录扫描每一个存活的IP的扫描时长,以及该10个存活的IP中每个IP中存在的漏洞的数量。其中,例如,主机扫描任务中的漏洞指的是:存活在这个IP的主机上的脆弱性问题,例如:限制绕过漏洞(OpensshMaxAuthTries)、函数拒绝服务漏洞(OpenSSH auth_password)问题等;网页扫描任务中的漏洞指的是:web应用程序的漏洞,例如:跨站、sql注入等等。
为了防止任务调度装置中存储过多的执行情况,从而占用较多的内存资源,在本申请实施例中,可以设置执行情况的有效时长,当某一个子任务对应的执行情况存储在任务调度装置的时长超过该有效时长后,则可以删除该执行情况。
步骤102、获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况。
在本申请实施例中,第二时刻在第一时刻之前,例如,第二时刻为任务调度装置首次执行分配任务的时刻,则该第一时刻可以是在首次之后的任意一次执行分配任务的时刻,例如为第3次执行任务分配的时刻或者第2次执行任务分配的时刻。第一时刻和第二时刻可以相邻,也可以不相邻,在此不作限制。
步骤103、根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务。
具体来讲,根据每个任务执行装置的执行情况,拆分该第一分配任务的方式包括但不限于如下两种:
第一种方式:
可以根据每个任务执行装置的执行时长,拆分第一分配任务。例如,任务T1包括的IP为192.0.0.1~192.0.0.255以及192.0.1.1~192.0.1.255,根据前述拆分规则,将任务T1拆分为包括192.0.0.1~192.0.0.255的子任务t1和包括192.0.1.1~192.0.1.255的子任务t2,由任务执行装置1执行子任务t1,由任务执行装置2执行子任务t2。任务调度装置获取的执行情况为:任务执行装置1执行子任务t1的执行时长约大于任务执行装置2执行子任务t2的执行时长的两倍,则任务调度装置可以在下一次拆分包括192.0.0.*网段的IP时,按照小于256的数量进行拆分,例如,将128个IP拆分为一个子任务。
第二种方式:
根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,每个新的任务拆分规则的粒度小于所述预设的任务拆分规则的粒度;
根据所述至少一个新的任务拆分规则,将所述第一分配任务拆分为所述多个第一子任务。
作为一种示例,若第一分配任务为主机扫描任务,则根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,包括:
将第一数量的存活的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第二数量的存在漏洞的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
例如,将n个存活的IP为一个拆分单元进行拆分。以将任务T1拆分为包括192.0.0.1~192.0.0.255的子任务t1和包括192.0.1.1~192.0.1.255的子任务t2,由任务执行装置1执行子任务t1,由任务执行装置2执行子任务t2,且任务调度装置获取的执行情况为:任务执行装置1执行子任务t1所扫描的存活的IP数量为20个,任务执行装置2执行子任务t2所扫描的存活的IP数量为10个,则可以将10个存活的IP作为一个拆分单元,当第一分配任务中存在包括192.0.1.1~192.0.1.255的IP时,则可以192.0.1.1~192.0.1.128和192.0.1.129~192.0.1.255这两个子任务,以保证每个子任务中包括的存活的IP的数量为10个。又例如,可以将x个存活端口或p个主机漏洞为一个拆分单元进行拆分,具体方式以前述将n个存活的IP为一个拆分单元进行拆分的方式相似,在此不再赘述。
作为另一种示例,若第一分配任务为网页扫描任务,则根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,包括:
将第三数量的存活的服务组件或URL作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第四数量的存在漏洞的服务组件或URL作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
例如,将m个存活的URL或y个服务组件或q个网站漏洞为一个拆分单元进行拆分,具体实现方式可以与前述示例相似,在此不再赘述。
另外,由上述更新预设的任务拆分规则的方式可知,可以根据执行情况中包括的内容得到多个新的拆分单元,从而可以得到多个新的任务拆分规则。任务调度装置可以根据其中一种新的拆分单元,得到一个新的任务拆分规则,也可以根据多种新的拆分单元得到多种新的任务拆分规则。当得到多种新的任务拆分规则后,任务调度装置可以依次使用该多种新的任务拆分规则对第一分配任务进行拆分。
作为一种示例,可以将m个存活的URL作为第一拆分单元,将y个服务组件作为第二拆分单元,将q个网站漏洞作为第三拆分单元,则任务调度装置可以采用如图2所示的方式对第一分配任务进行拆分。
首先,任务调度装置根据与第一拆分单元对应的第一拆分规则,将第一分配任务进行拆分,然后判断是否有第二拆分单元,如果有,则判断采用第一拆分规则拆分后的每个子任务的容量是否大于该第二拆分单元,若是,则按照与第二拆分单元对应的第二拆分规则对每个子任务再次进行拆分。然后判断是否有第三拆分单元,若有,则判断再次进行拆分后的每个子任务的容量是否大于该第三拆分单元,若是,则按照与第三拆分单元对应的第三拆分规则对每个子任务再次进行拆分,得到对第一分配任务进行拆分后的多个第一子任务。
需要说明的是,第一、第二、第三仅用来区分不同的拆分单元,不应理解为指示不同拆分单元的重要性或者优先级。
步骤104、根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
在本申请实施例中,当得到该多个第一子任务后,可以采用步骤101中的初始执行效率,将该多个第一子任务分配给该至少两个任务执行装置。或者,可以根据每个任务执行装置的执行情况,对初始执行效率进行更新,然后根据更新后的执行效率分配该多个第一子任务。
具体来讲,任务调度装置首先根据所述每个任务执行装置的所述执行情况,确定对每个任务执行装置的所述初始执行效率进行加权运算的权重值;然后,根据所述权重值更新每个任务执行装置的所述初始执行效率,得到更新后的执行效率;最后,根据所述多个第二子任务以及所述每个任务执行装置更新后的执行效率,进行最优化求解,从而将所述多个第二子任务指派给所述至少两个任务执行装置。
作为一种示例,所述第一分配任务为主机扫描任务时,所述权重值的计算方式满足如下表达式:
Figure BDA0002433350680000171
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,h为执行所述第i个第一子任务所扫描的存活的IP或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的IP或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
作为另一种示例,所述第一分配任务为网页扫描任务时,所述权重值的计算方式满足如下表达式:
Figure BDA0002433350680000181
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,l为所述第i个第一子任务所包括的总的服务组件或端口的数量,n为执行所述第i个第一子任务所扫描的存活的服务组件或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的服务组件或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
其中,若针对某个IP,任务调度装置不存在包括该IP的执行情况,则该IP的权重值为1。例如,针对C11,任务调度装置中并不存在由任务执行装置1执行第1个第二子任务的执行情况,则针对C11,其权重值为1,否则,则根据上述公式计算权重值。
计算出每个aij后,可以更新表1所示的执行效率矩阵,得到如表2所示的更新后的执行效率矩阵。
表1
d1 d2 d3 ... ... dm-1 dm
t1 a11C11 a12C12 a13C13 . . . a1mC1m
t2 a21C21 a22C22 a23C23 . . . a2mC2m
... ... ... ... . . . ...
tn an1Cn1 an2Cn2 an3Cn3 . . . anmCnm
得到上述更新后的执行效率矩阵后,则按照公式(2)进行最优解求解,得到任务分配结果,从而将该多个第一子任务分配给至少两个任务执行装置执行。
另外,可能会存在任务执行装置的实际属性信息与任务调度装置中记录的属性信息不符的情况。任务调度装置中记录任务执行装置1和任务执行装置2的属性信息相同,例如最大可执行的子任务的数量相同,但是由任务执行装置1和任务执行装置2的执行情况可以看出,当这两个任务执行装置在执行相同容量的子任务时,其执行时长或所使用的计算资源差异较大,例如,任务执行装置1所用的执行时长为任务执行装置2所用的执行时长的两倍,则可以确定任务执行装置1实际的最大可执行的子任务的数量是任务执行装置2的最大可执行的子任务的一半,从而可以在任务调度装置中更新任务执行装置1的属性信息,从而根据更新后的属性信息,重新计算任务执行装置1的初始执行效率。这样,可以及时对任务执行装置的属性信息进行更新,解决任务执行装置的实际能力与上报的能力不符的情况。
在本申请提供的技术方案中,任务调度装置在进行下一次任务指派时,会结合接收的每个任务执行装置在执行上一次所分配的任务的执行情况,对此次的分配任务进行拆分以及给每个任务执行装置分配子任务,这样,通过一种自学习的方式,进而达到最优的任务拆分和任务分配,可以提高扫描效率。
本发明第二方面提供一种任务指派装置,请参考图3所示,为本发明实施例提供的一种任务指派装置的结构示意图,所述装置包括:
获取模块301,用于获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
拆分模块302,用于根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务;
分配模块303,用于根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
由于本发明第二方面提供的任务指派装置是在与本发明第一方面提供的任务指派方法的相同构思下提出的,因此前述图1实施例中的任务指派方法的各种变化方式和具体实施例同样适用于本实施例的装置,通过前述对任务指派方法的详细描述,本领域技术人员可以清楚的知道本实施例中装置的实施过程,所以为了说明书的简洁,在此不再详述。
本发明第三方面提供一种任务指派装置,请参考图4所示,为本发明实施例提供的装置的结构图。如图4所示,所述装置包括:
收发器402获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
处理器401根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务,并根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,通过收发器402将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
可选的,处理器401具体可以是中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,处理器401可以包括至少一个处理核心。
可选的,电子设备还包括存储器404,存储器404可以包括只读存储器(英文:ReadOnly Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器。存储器404用于存储处理器401运行时所需的数据。存储器的数量为一个或多个。
由于本发明第三方面提供的任务指派装置是在与本发明第一方面提供的任务指派方法的相同构思下提出的,因此前述图1实施例中的任务指派方法的各种变化方式和具体实施例同样适用于本实施例的装置,通过前述对任务指派方法的详细描述,本领域技术人员可以清楚的知道本实施例中装置的实施过程,所以为了说明书的简洁,在此不再详述。
本发明第四方面提供了一种计算机装置,所述计算机装置包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如图1所示的实施例中的方法。
本发明第五方面提供了一种计算机可读存储介质,,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如图1所示的实施例中的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (22)

1.一种任务指派方法,其特征在于,所述方法包括:
获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务;
根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
2.根据权利要求1所述的方法,其特征在于,所述每个任务执行装置在第二时刻执行第二分配任务时的执行情况是指,所述每个任务执行装置在执行所分配的子任务时,完成所述所分配的子任务所用的执行时长以及完成所述所分配的子任务所使用的计算资源;所述所分配的子任务是根据与所述第二分配任务对应的多个第二子任务以及所述每个任务执行装置的初始执行效率,进行最优化求解得到的,所述多个第二子任务是根据预设的任务拆分规则进行拆分的,其中一个任务执行装置的初始执行效率是根据所述任务执行装置所分配的子任务的容量和所述任务执行装置的属性信息确定的。
3.根据权利要求2所述的方法,其特征在于,所述根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务,包括:
根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,每个新的任务拆分规则的粒度小于所述预设的任务拆分规则的粒度;
根据所述至少一个新的任务拆分规则,将所述第一分配任务拆分为所述多个第一子任务。
4.根据权利要求2或3所述的方法,其特征在于,所述所分配的子任务为主机扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的网际互连协议IP或端口的总数量;
所述任务执行装置扫描每一个存活的IP或端口所用的执行时长;
所述任务执行装置扫描每一个存活的IP或端口时发现的漏洞的总数量。
5.根据权利要求4所述的方法,其特征在于,所述根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,包括:
将第一数量的存活的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第二数量的存在漏洞的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
6.根据权利要求2或3所述的方法,其特征在于,所述所分配的子任务为网页扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的服务组件或统一资源定位系统URL的总数量;
所述任务执行装置扫描每一个存活的服务组件或URL所用的执行时长;
所述任务执行装置扫描每一个存活的服务组件或URL时发现的漏洞的总数量。
7.根据权利要求6所述的方法,其特征在于,所述根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,包括:
将第三数量的存活的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第四数量的存在漏洞的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
8.根据权利要求2所述的方法,其特征在于,所述根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,包括:
根据所述每个任务执行装置的所述执行情况,确定对每个任务执行装置的所述初始执行效率进行加权运算的权重值;
根据所述权重值更新每个任务执行装置的所述初始执行效率,得到更新后的执行效率;
根据所述多个第二子任务以及所述每个任务执行装置更新后的执行效率,进行最优化求解,从而将所述多个第二子任务指派给所述至少两个任务执行装置。
9.根据权利要求8所述的方法,其特征在于,所述第一分配任务为主机扫描任务时,所述权重值的计算方式满足如下表达式:
Figure FDA0002433350670000031
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,h为执行所述第i个第一子任务所扫描的存活的IP或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的IP或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
10.根据权利要求8所述的方法,其特征在于,所述第一分配任务为网页扫描任务时,所述权重值的计算方式满足如下表达式:
Figure FDA0002433350670000032
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,l为所述第i个第一子任务所包括的总的服务组件或端口的数量,n为执行所述第i个第一子任务所扫描的存活的服务组件或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的服务组件或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
11.一种任务指派装置,其特征在于,包括:
获取模块,用于获取至少两个任务执行装置在第一时刻的第一分配任务,以及所述至少两个任务执行装置中的每个任务执行装置在第二时刻执行第二分配任务时的执行情况,所述第二时刻在所述第一时刻之前,所述执行情况用于指示任务执行装置在执行所述第二分配任务时所用的执行时长以及所使用的计算资源;
拆分模块,用于根据所述每个任务执行装置的所述执行情况,将所述第一分配任务拆分为多个第一子任务;
分配模块,用于根据所述每个任务执行装置的所述执行情况以及所述每个任务执行装置的属性信息,将所述多个第一子任务指派给所述至少两个任务执行装置进行执行,所述属性信息包括任务执行装置预设的所能执行的子任务的数量的最大值和任务执行装置的负载。
12.根据权利要求11所述的装置,其特征在于,所述每个任务执行装置在第二时刻执行第二分配任务时的执行情况是指,所述每个任务执行装置在执行所分配的子任务时,完成所述所分配的子任务所用的执行时长以及完成所述所分配的子任务所使用的计算资源;所述所分配的子任务是根据与所述第二分配任务对应的多个第二子任务以及所述每个任务执行装置的初始执行效率,进行最优化求解得到的,所述多个第二子任务是根据预设的任务拆分规则进行拆分的,其中一个任务执行装置的初始执行效率是根据所述任务执行装置所分配的子任务的容量和所述任务执行装置的属性信息确定的。
13.根据权利要求12所述的装置,其特征在于,所述拆分模块具体用于:
根据所述每个任务执行装置的所述执行情况,更新所述预设的任务拆分规则,得到至少一个新的任务拆分规则,每个新的任务拆分规则的粒度小于所述预设的任务拆分规则的粒度;
根据所述至少一个新的任务拆分规则,将所述第一分配任务拆分为所述多个第一子任务。
14.根据权利要求12或13所述的装置,其特征在于,所述所分配的子任务为主机扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的网际互连协议IP或端口的总数量;
所述任务执行装置扫描每一个存活的IP或端口所用的执行时长;
所述任务执行装置扫描每一个存活的IP或端口时发现的漏洞的总数量。
15.根据权利要求14所述的装置,其特征在于,所述拆分模块具体用于:
将第一数量的存活的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第二数量的存在漏洞的IP或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
16.根据权利要求12或13所述的装置,其特征在于,所述所分配的子任务为网页扫描任务,所述完成所述所分配的子任务所用的执行时长包括如下信息中的至少一种:
所述任务执行装置所扫描的存活的服务组件或统一资源定位系统URL的总数量;
所述任务执行装置扫描每一个存活的服务组件或URL所用的执行时长;
所述任务执行装置扫描每一个存活的服务组件或URL时发现的漏洞的总数量。
17.根据权利要求16所述的装置,其特征在于,所述拆分模块具体用于:
将第三数量的存活的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则;和/或,
将第四数量的存在漏洞的服务组件或端口作为新的拆分单元,更新所述预设的任务拆分规则,得到所述新的任务拆分规则。
18.根据权利要求12所述的装置,其特征在于,所分配模块具体用于:
根据所述每个任务执行装置的所述执行情况,确定对每个任务执行装置的所述初始执行效率进行加权运算的权重值;
根据所述权重值更新每个任务执行装置的所述初始执行效率,得到更新后的执行效率;
根据所述多个第二子任务以及所述每个任务执行装置更新后的执行效率,进行最优化求解,从而将所述多个第二子任务指派给所述至少两个任务执行装置。
19.根据权利要求18所述的装置,其特征在于,所述第一分配任务为主机扫描任务时,所述权重值的计算方式满足如下表达式:
Figure FDA0002433350670000061
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,h为执行所述第i个第一子任务所扫描的存活的IP或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的IP或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
20.根据权利要求18所述的装置,其特征在于,所述第一分配任务为网页扫描任务时,所述权重值的计算方式满足如下表达式:
Figure FDA0002433350670000062
其中,aij为第j个任务执行装置执行第i个第一子任务时的权重值,l为所述第i个第一子任务所包括的总的服务组件或端口的数量,n为执行所述第i个第一子任务所扫描的存活的服务组件或端口的数量,t为执行所述第i个第一子任务的执行时长,v为执行所述第i个第一子任务所扫描的存在漏洞的服务组件或端口的数量,c为执行所述第i个第一子任务所使用的CUP资源,m为执行所述第i个第一子任务所使用的存储资源。
21.一种任务指派装置,其特征在于,所述装置包括:
至少一个处理器,以及,
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行如权利要求1-10中任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-10中任一项所述的方法。
CN202010243555.4A 2020-03-31 2020-03-31 一种任务指派方法及装置 Active CN111367647B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010243555.4A CN111367647B (zh) 2020-03-31 2020-03-31 一种任务指派方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010243555.4A CN111367647B (zh) 2020-03-31 2020-03-31 一种任务指派方法及装置

Publications (2)

Publication Number Publication Date
CN111367647A true CN111367647A (zh) 2020-07-03
CN111367647B CN111367647B (zh) 2024-06-11

Family

ID=71210786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010243555.4A Active CN111367647B (zh) 2020-03-31 2020-03-31 一种任务指派方法及装置

Country Status (1)

Country Link
CN (1) CN111367647B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631657A (zh) * 2013-11-19 2014-03-12 浪潮电子信息产业股份有限公司 一种基于MapReduce的任务调度算法
CN103984594A (zh) * 2014-05-14 2014-08-13 上海上讯信息技术股份有限公司 一种基于分布式可配置加权算法的任务调度方法及系统
CN104317658A (zh) * 2014-10-17 2015-01-28 华中科技大学 一种基于MapReduce的负载自适应任务调度方法
CN104731663A (zh) * 2015-03-31 2015-06-24 北京奇艺世纪科技有限公司 任务处理方法及系统
CN108681484A (zh) * 2018-04-04 2018-10-19 阿里巴巴集团控股有限公司 一种任务的分配方法、装置及设备
US20190138358A1 (en) * 2017-11-07 2019-05-09 Hitachi, Ltd. Task management system, task management method, and task management program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631657A (zh) * 2013-11-19 2014-03-12 浪潮电子信息产业股份有限公司 一种基于MapReduce的任务调度算法
CN103984594A (zh) * 2014-05-14 2014-08-13 上海上讯信息技术股份有限公司 一种基于分布式可配置加权算法的任务调度方法及系统
CN104317658A (zh) * 2014-10-17 2015-01-28 华中科技大学 一种基于MapReduce的负载自适应任务调度方法
CN104731663A (zh) * 2015-03-31 2015-06-24 北京奇艺世纪科技有限公司 任务处理方法及系统
US20190138358A1 (en) * 2017-11-07 2019-05-09 Hitachi, Ltd. Task management system, task management method, and task management program
CN108681484A (zh) * 2018-04-04 2018-10-19 阿里巴巴集团控股有限公司 一种任务的分配方法、装置及设备

Also Published As

Publication number Publication date
CN111367647B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
CN109471727B (zh) 一种任务处理方法、装置及系统
CN110535777B (zh) 访问请求控制方法、装置、电子设备以及可读存储介质
US7010596B2 (en) System and method for the allocation of grid computing to network workstations
CN107682417B (zh) 一种数据节点的任务分配方法和装置
US20060277295A1 (en) Monitoring system and monitoring method
CN109274782B (zh) 一种采集网站数据的方法及装置
CN103346912A (zh) 告警相关性分析的方法、装置及系统
CN113032156B (zh) 内存分配方法和装置、电子设备和存储介质
WO2019170011A1 (zh) 任务分配方法及装置、分布式存储系统
US20180225147A1 (en) Resource allocation method and apparatus
CN105468619A (zh) 用于数据库连接池的资源分配方法和装置
CN112583780B (zh) 使用代理ip访问网站数据的方法、装置、系统和设备
CN110555014B (zh) 一种数据迁移方法和系统、电子设备、存储介质
CN105872082B (zh) 基于容器集群负载均衡算法的细粒度资源响应系统
CN111930505B (zh) 大数据平台的数据资源管理方法及系统、服务器及介质
CN110597879A (zh) 时序数据的处理方法和装置
CN106713163A (zh) 一种调配服务器负载的方法及装置
CN111367647B (zh) 一种任务指派方法及装置
CN114185763A (zh) 动态分配方法、装置、存储介质及电子设备
JP2011141703A (ja) 資源配置システム、資源配置方法、及び資源配置用プログラム
CN114173396B (zh) 终端联网时间的确定方法和装置、电子设备和存储介质
CN113992378B (zh) 一种安全监测方法、装置、电子设备及存储介质
CN110968420A (zh) 一种多爬虫平台的调度方法、装置、存储介质及处理器
CN110851483B (zh) 用于筛选对象的方法、装置、电子设备以及介质
CN113377866A (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
GR01 Patent grant
GR01 Patent grant