CN106681803B - 一种任务调度方法及服务器 - Google Patents

一种任务调度方法及服务器 Download PDF

Info

Publication number
CN106681803B
CN106681803B CN201610631101.8A CN201610631101A CN106681803B CN 106681803 B CN106681803 B CN 106681803B CN 201610631101 A CN201610631101 A CN 201610631101A CN 106681803 B CN106681803 B CN 106681803B
Authority
CN
China
Prior art keywords
target objects
load
task
scheduling
hidden
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
Application number
CN201610631101.8A
Other languages
English (en)
Other versions
CN106681803A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610631101.8A priority Critical patent/CN106681803B/zh
Publication of CN106681803A publication Critical patent/CN106681803A/zh
Application granted granted Critical
Publication of CN106681803B publication Critical patent/CN106681803B/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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种任务调度方法及服务器,其中,所述方法包括:接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i;收集所述k个目标对象分别对应的当前负载和历史调度记录;根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载;根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。

Description

一种任务调度方法及服务器
技术领域
本发明涉及调度技术,尤其涉及一种任务调度方法及服务器。
背景技术
采用大型集群系统对外网进行扫描的过程中,若采取连续扫描,由于扫描过于频繁,该正常的扫描操作会被误判为恶意的攻击性行为,从而该扫描操作会被禁止,即:外网不允许某台设备对其进行访问和扫描。为了规避这个误判问题,需要对扫描行为采取隐匿的方式进行处理,从而,避免让外网检测到过频繁的连续扫描行为。
大型集群系统中包含多个服务器,多个服务器中存在主控服务器和从属服务器,其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。在采取隐匿的方式进行处理的过程中,通过合理的任务调度,使得扫描行为保持在一个可控的范围内,从而使得扫描行为不会被误判为恶意的攻击性行为。而合理的任务调度需要充分考虑到负载均衡的问题,目前的负载均衡评估都未曾考虑上述隐匿扫描场景中的影响参数。相关技术中,对于该问题,尚无有效解决方案。
发明内容
有鉴于此,本发明实施例提供了一种任务调度方法及服务器,至少解决了现有技术存在的问题。
本发明实施例的技术方案是这样实现的:
本发明实施例的一种任务调度方法,所述方法包括:
接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i;
收集所述k个目标对象分别对应的当前负载和历史调度记录;
根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载;
根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;
按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
本发明实施例的一种服务器,所述服务器包括:
接收单元,用于接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i;
收集单元,用于收集所述k个目标对象分别对应的当前负载和历史调度记录;
第一负载运算单元,用于根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载;
第二负载运算单元,用于根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;
分配单元,用于按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
本发明实施例的任务调度方法包括:接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i;收集所述k个目标对象分别对应的当前负载和历史调度记录;根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载;根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
采用本发明实施例,通过合理的任务调度,使得扫描行为保持在一个可控的范围内,从而使得扫描行为不会被误判为恶意的攻击性行为。该合理的任务调度是在充分考虑负载均衡的基础上提出的,还考虑到隐匿扫描场景中的影响参数,使得对隐匿扫描场景中的负载均衡评估会更加趋于精准。
附图说明
图1为本发明实施例中进行信息交互的各方硬件实体的示意图;
图2为实施例一的方法流程示意图;
图3为实施例二的方法流程示意图;
图4为实施例三的方法流程示意图;
图5为实施例四的方法流程示意图;
图6为实施例五的硬件组成结构示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明实施例的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
在下面的详细说明中,陈述了众多的具体细节,以便彻底理解本发明。不过,对于本领域的普通技术人员来说,显然可在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细说明公开的公知方法、过程、组件、电路和网络,以避免不必要地使实施例的各个方面模糊不清。
另外,本文中尽管多次采用术语“第一”、“第二”等来描述各种元件(或各种阈值或各种应用或各种指令或各种操作)等,不过这些元件(或阈值或应用或指令或操作)不应受这些术语的限制。这些术语只是用于区分一个元件(或阈值或应用或指令或操作)和另一个元件(或阈值或应用或指令或操作)。例如,第一操作可以被称为第二操作,第二操作也可以被称为第一操作,而不脱离本发明的范围,第一操作和第二操作都是操作,只是二者并不是相同的操作而已。
本发明实施例中的步骤并不一定是按照所描述的步骤顺序进行处理,可以按照需求有选择的将步骤打乱重排,或者删除实施例中的步骤,或者增加实施例中的步骤,本发明实施例中的步骤描述只是可选的顺序组合,并不代表本发明实施例的所有步骤顺序组合,实施例中的步骤顺序不能认为是对本发明的限制。
本发明实施例中的术语“和/或”指的是包括相关联的列举项目中的一个或多个的任何和全部的可能组合。还要说明的是:当用在本说明书中时,“包括/包含”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件和/或组件和/或它们的组群的存在或添加。
本发明实施例的智能终端(如移动终端)可以以各种形式来实施。例如,本发明实施例中描述的移动终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,Personal Digital Assistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable Media Player)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为本发明实施例中进行信息交互的各方硬件实体的示意图,图1中包括:服务器11-12(作为服务器集群系统中的一个或多个主控服务器)、服务器21-23(作为服务器集群系统中的多个从属服务器)、终端设备31-35,终端设备31-35如图1所示是通过有线网络与上述服务器进行连接和信息交互,当然,终端设备31-35也可以通过无线网络与上述服务器进行连接和信息交互。其中,终端设备包括手机、台式机、PC机、一体机等类型。采用本发明实施例,主控服务器接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i;收集所述k个目标对象分别对应的当前负载和历史调度记录;根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载;根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。需要指出的是,如图1所示,服务器集群系统中,主控服务器和从属服务器位于内网(或称公司内网,企业内网)中,终端设备位于外网中,主控服务器(用于接收新分配的第一任务)按照负载评估结果为从属服务器(执行任务的上述目标对象)分配任务,由从属服务器执行任务,当任务为隐匿扫描场景中的扫描任务时,由于考虑到隐匿扫描场景中的影响参数(如隐匿负载、或隐匿负载的一个具体示例“隐匿因子”),因此,对隐匿扫描场景中的负载均衡评估会更加趋于精准。通过在充分考虑负载均衡基础上提出的合理任务调度,使得扫描行为保持在一个可控的范围内,从而使得扫描行为不会被误判为恶意的攻击性行为。
上述图1的例子只是实现本发明实施例的一个系统架构实例,本发明实施例并不限于上述图1所述的系统结构,基于上述图1所述的系统架构,提出本发明方法各个实施例。
实施例一:
本发明实施例的任务调度方法,如图2所示,所述方法包括:
步骤101、接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
这里,目标对象指:由从属服务器(或称从服务器)构成的多个对象。主控服务器(或称主服务器)接收的第一任务可以是隐匿扫描场景中的扫描任务,由于集群系统中,主控服务器(或称主服务器)位于前端,多个从属服务器(或称从服务器)位于后端,需要主控服务器(或称主服务器)先对负载进行评估后,才能决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。因此,主控服务器(或称主服务器)会随机选取或者按照之前的调度经验值来选取,如从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
步骤102、收集所述k个目标对象分别对应的当前负载和历史调度记录。
这里,主控服务器(或称主服务器)采取随机选取方式时,随机从i个目标对象中选取出k个目标对象,将这k个从属服务器(或称从服务器)的当前负载和历史调度记录收集上来,以便用于负载评估,通过合理的调度,将决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。
步骤103、根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载。
这里,主控服务器(或称主服务器)需要根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载(具体是隐匿因子),该隐匿负载即为隐匿扫描场景中的影响参数,由于本发明实施例增加了对隐匿负载(具体是隐匿因子)的考虑,并基于历史调度记录来运算得到该隐匿负载(具体是隐匿因子),可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
步骤104、根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载。
这里,在主控服务器(或称主服务器)计算实际负载时,除了考虑步骤103中运算得到的隐匿负载(具体是隐匿因子),还需要把选取出的k个目标对象,即这k个从属服务器(或称从服务器)的当前负载也一起考虑进去,这样,算出的最终结果才是当前的实际负载。
步骤105、按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
这里,通过引入基于历史调度记录来运算得到隐匿负载(具体是隐匿因子),再结合之前运算得到的针对k个目标对象,即这k个从属服务器(或称从服务器)的当前负载,得到每一个从属服务器(或称从服务器)的实际负载,通过每一个从属服务器(或称从服务器)的实际负载运算得到集群系统中包含所有从属服务器(或称从服务器)的总负载,根据实际负载和总负载可以得到每一个从属服务器(或称从服务器)的负载率,根据该负载率与总负载率的比较,可以得到分配概率,从而可以将符合该分配概率的从属服务器(或称从服务器)找到,即找出符合预设策略的目标对象,将所述第一任务(具体如隐匿扫描场景中的扫描任务)分配给符合预设策略的一个或多个目标对象,并将其作为执行机来执行所述第一任务,在应用场景为隐匿扫描场景时,目标对象执行的任务为扫描任务,可以对外网进行扫描和/或访问。
本发明实施例中,涉及的大型集群系统的场景中,包含多个服务器,多个服务器中存在主控服务器(或称主服务器)和从属服务器(或称从服务器),其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。集群系统是将由一些互相连接在一起的计算机构成的一个并行或分布式系统,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。从外部来看,它们仅仅是一个系统,对外提供统一的服务。集群系统内的计算机物理上通过电缆连接,程序上则通过集群软件连接。这些连接允许计算机使用故障应急与负载平衡功能。集群系统中的多台服务器可以拥有共享数据存储空间,各服务器之间通过内部局域网进行相互通信;当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管,以实现故障应急。每台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高。在处理负载均衡时,集群系统可以通过一个或者多个前端负载均衡器(如上述主控服务器或称主服务器),将工作负载分发到后端的一组服务器(如上述从服务器)上,从而达到整个系统的高性能和高可用性。可见,本发明实施例采用该集群系统可以提高系统的稳定性和网络中心的数据处理能力及服务能力,并兼具负载均衡的考量,由于基于历史调度记录来运算得到上述隐匿负载(具体是隐匿因子),结合多个从属服务器(或称从服务器)的当前负载,从而可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
在本发明实施例一实施方式中,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
在本发明实施例一实施方式中,所述k个目标对象分别对应的隐匿负载,由所述k个目标对象的任务组成参数来决定;所述任务组成参数包括:端口号、IP地址中的至少一种。
实施例二:
本发明实施例的任务调度方法,如图3所示,所述方法包括:
步骤201、接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
这里,目标对象指:由从属服务器(或称从服务器)构成的多个对象。主控服务器(或称主服务器)接收的第一任务可以是隐匿扫描场景中的扫描任务,由于集群系统中,主控服务器(或称主服务器)位于前端,多个从属服务器(或称从服务器)位于后端,需要主控服务器(或称主服务器)先对负载进行评估后,才能决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。因此,主控服务器(或称主服务器)会随机选取或者按照之前的调度经验值来选取,如从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
步骤202、收集所述k个目标对象分别对应的当前负载和历史调度记录。
这里,主控服务器(或称主服务器)采取随机选取方式时,随机从i个目标对象中选取出k个目标对象,将这k个从属服务器(或称从服务器)的当前负载和历史调度记录收集上来,以便用于负载评估,通过合理的调度,将决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。
步骤203、根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载。
这里,主控服务器(或称主服务器)需要根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载(具体是隐匿因子),该隐匿负载即为隐匿扫描场景中的影响参数,由于本发明实施例增加了对隐匿负载(具体是隐匿因子)的考虑,并基于历史调度记录来运算得到该隐匿负载(具体是隐匿因子),可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
这里,所述k个目标对象分别对应的隐匿负载,由所述k个目标对象的任务组成参数来决定;所述任务组成参数包括:端口号、IP地址中的至少一种。当任务组成参数为端口号时,本步骤中,根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载,可以包括:步骤2031、将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;步骤2032、所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子构成。需要指出的是,所述k个目标对象分别对应的隐匿负载,还可以由第一隐匿负载因子的倒数构成。
一个示例为:计算新来任务,即第一任务端口号的隐匿负载,假设新任务的端口号为P,目标对象由于是执行任务的服务器,也可以称为执行机,则执行机Z对应的端口调度样本为P1,P2,P3......Pn,根据方差的计算公式可得新任务端口号的隐匿负载或称隐匿因子为
Figure BDA0001069181870000091
将隐匿因子的倒数作为实际负载的一个参数会对后续基于负载评估的任务分配更加精准,理由是:隐匿负载或称隐匿因子的大小可以反应隐匿性的好坏。隐匿负载或称隐匿因子大,则隐匿性好;隐匿负载或称隐匿因子小,则隐匿性相对较差。但是对于执行机实际的负载来说,负载量越大,代表将任务分配给该执行机的概率越小;而根据历史调度记录计算出的某台执行机的隐匿负载或称隐匿因子越大,表示越应该将任务调度给这台执行机,因此,除了可以直接将隐匿负载或称隐匿因子进行实际负载的运算之外,更好的方式是将隐匿负载或称隐匿因子的倒数作为进行实际负载的运算的一个参数,这样,会更加精准。
步骤204、根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载。
这里,在主控服务器(或称主服务器)计算实际负载时,除了考虑步骤203中运算得到的隐匿负载(具体是隐匿因子),还需要把选取出的k个目标对象,即这k个从属服务器(或称从服务器)的当前负载也一起考虑进去,这样,算出的最终结果才是当前的实际负载。
这里,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
计算当前负载的一个示例为:在更新周期T内,当有新任务到来时,要先从Z1,Z2......Zi中随机选取K个执行机C1,C2......Ck,1≤K≤i,它们的负载分别为L1,L2......Li,当前任务以概率Pj分配给执行机Zi。执行机负载的计算利用执行机的性能作为参考依据,比如CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量以及网络负载流量中的至少一种等等。执行机负载计算公式为:Li=k1×cpu%+k2×memory%+k3×hard%,k1+k2+k3=1。其中,cpu%表示CPU使用率,memory%表示内存使用率,hard%表示硬盘使用量。k1,k2,k3指用户指定的权值。
步骤205、按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
这里,通过引入基于历史调度记录来运算得到隐匿负载(具体是隐匿因子),再结合之前运算得到的针对k个目标对象,即这k个从属服务器(或称从服务器)的当前负载,得到每一个从属服务器(或称从服务器)的实际负载,通过每一个从属服务器(或称从服务器)的实际负载运算得到集群系统中包含所有从属服务器(或称从服务器)的总负载,根据实际负载和总负载可以得到每一个从属服务器(或称从服务器)的负载率,根据该负载率与总负载率的比较,可以得到分配概率,从而可以将符合该分配概率的从属服务器(或称从服务器)找到,即找出符合预设策略的目标对象,将所述第一任务(具体如隐匿扫描场景中的扫描任务)分配给符合预设策略的一个或多个目标对象,并将其作为执行机来执行所述第一任务,在应用场景为隐匿扫描场景时,目标对象执行的任务为扫描任务,可以对外网进行扫描和/或访问。
本发明实施例中,涉及的大型集群系统的场景中,包含多个服务器,多个服务器中存在主控服务器(或称主服务器)和从属服务器(或称从服务器),其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。集群系统是将由一些互相连接在一起的计算机构成的一个并行或分布式系统,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。从外部来看,它们仅仅是一个系统,对外提供统一的服务。集群系统内的计算机物理上通过电缆连接,程序上则通过集群软件连接。这些连接允许计算机使用故障应急与负载平衡功能。集群系统中的多台服务器可以拥有共享数据存储空间,各服务器之间通过内部局域网进行相互通信;当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管,以实现故障应急。每台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高。在处理负载均衡时,集群系统可以通过一个或者多个前端负载均衡器(如上述主控服务器或称主服务器),将工作负载分发到后端的一组服务器(如上述从服务器)上,从而达到整个系统的高性能和高可用性。可见,本发明实施例采用该集群系统可以提高系统的稳定性和网络中心的数据处理能力及服务能力,并兼具负载均衡的考量,由于基于历史调度记录来运算得到上述隐匿负载(具体是隐匿因子),结合多个从属服务器(或称从服务器)的当前负载,从而可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
实施例三:
本发明实施例的任务调度方法,如图4所示,所述方法包括:
步骤301、接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
这里,目标对象指:由从属服务器(或称从服务器)构成的多个对象。主控服务器(或称主服务器)接收的第一任务可以是隐匿扫描场景中的扫描任务,由于集群系统中,主控服务器(或称主服务器)位于前端,多个从属服务器(或称从服务器)位于后端,需要主控服务器(或称主服务器)先对负载进行评估后,才能决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。因此,主控服务器(或称主服务器)会随机选取或者按照之前的调度经验值来选取,如从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
步骤302、收集所述k个目标对象分别对应的当前负载和历史调度记录。
这里,主控服务器(或称主服务器)采取随机选取方式时,随机从i个目标对象中选取出k个目标对象,将这k个从属服务器(或称从服务器)的当前负载和历史调度记录收集上来,以便用于负载评估,通过合理的调度,将决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。
步骤303、根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载。
这里,主控服务器(或称主服务器)需要根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载(具体是隐匿因子),该隐匿负载即为隐匿扫描场景中的影响参数,由于本发明实施例增加了对隐匿负载(具体是隐匿因子)的考虑,并基于历史调度记录来运算得到该隐匿负载(具体是隐匿因子),可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
这里,所述k个目标对象分别对应的隐匿负载,由所述k个目标对象的任务组成参数来决定;所述任务组成参数包括:端口号、IP地址中的至少一种。当任务组成参数为IP地址时,本步骤中,根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载,可以包括:步骤3031、将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;步骤3032、所述k个目标对象分别对应的隐匿负载,由所述针对IP地址的第二隐匿负载因子构成。需要指出的是,所述k个目标对象分别对应的隐匿负载,还可以由第二隐匿负载因子的倒数构成。
一个示例为:计算新来任务,即第一任务端口号的隐匿负载,计算新任务IP地址的隐匿负载,要先将IP地址通过ntohl系统库函数将IP地址转化为整形然后再进行计算,假设新任务的IP地址为IP,执行机Z对应的IP地址调度样本为I1,I2,I3......In,同样利用方差的计算公式来计算得到IP地址的隐匿负载为
Figure BDA0001069181870000131
将隐匿因子的倒数作为实际负载的一个参数会对后续基于负载评估的任务分配更加精准,理由是:隐匿负载或称隐匿因子的大小可以反应隐匿性的好坏。隐匿负载或称隐匿因子大,则隐匿性好;隐匿负载或称隐匿因子小,则隐匿性相对较差。但是对于执行机实际的负载来说,负载量越大,代表将任务分配给该执行机的概率越小;而根据历史调度记录计算出的某台执行机的隐匿负载或称隐匿因子越大,表示越应该将任务调度给这台执行机,因此,除了可以直接将隐匿负载或称隐匿因子进行实际负载的运算之外,更好的方式是将隐匿负载或称隐匿因子的倒数作为进行实际负载的运算的一个参数,这样,会更加精准。
步骤304、根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载。
这里,在主控服务器(或称主服务器)计算实际负载时,除了考虑步骤303中运算得到的隐匿负载(具体是隐匿因子),还需要把选取出的k个目标对象,即这k个从属服务器(或称从服务器)的当前负载也一起考虑进去,这样,算出的最终结果才是当前的实际负载。
这里,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
计算当前负载的一个示例为:在更新周期T内,当有新任务到来时,要先从Z1,Z2......Zi中随机选取K个执行机C1,C2......Ck,1≤K≤i,它们的负载分别为L1,L2......Li,当前任务以概率Pj分配给执行机Zi。执行机负载的计算利用执行机的性能作为参考依据,比如CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量以及网络负载流量中的至少一种等等。执行机负载计算公式为:Li=k1×cpu%+k2×memory%+k3×hard%,k1+k2+k3=1。其中,cpu%表示CPU使用率,memory%表示内存使用率,hard%表示硬盘使用量。k1,k2,k3指用户指定的权值。
步骤305、按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
这里,通过引入基于历史调度记录来运算得到隐匿负载(具体是隐匿因子),再结合之前运算得到的针对k个目标对象,即这k个从属服务器(或称从服务器)的当前负载,得到每一个从属服务器(或称从服务器)的实际负载,通过每一个从属服务器(或称从服务器)的实际负载运算得到集群系统中包含所有从属服务器(或称从服务器)的总负载,根据实际负载和总负载可以得到每一个从属服务器(或称从服务器)的负载率,根据该负载率与总负载率的比较,可以得到分配概率,从而可以将符合该分配概率的从属服务器(或称从服务器)找到,即找出符合预设策略的目标对象,将所述第一任务(具体如隐匿扫描场景中的扫描任务)分配给符合预设策略的一个或多个目标对象,并将其作为执行机来执行所述第一任务,在应用场景为隐匿扫描场景时,目标对象执行的任务为扫描任务,可以对外网进行扫描和/或访问。
本发明实施例中,涉及的大型集群系统的场景中,包含多个服务器,多个服务器中存在主控服务器(或称主服务器)和从属服务器(或称从服务器),其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。集群系统是将由一些互相连接在一起的计算机构成的一个并行或分布式系统,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。从外部来看,它们仅仅是一个系统,对外提供统一的服务。集群系统内的计算机物理上通过电缆连接,程序上则通过集群软件连接。这些连接允许计算机使用故障应急与负载平衡功能。集群系统中的多台服务器可以拥有共享数据存储空间,各服务器之间通过内部局域网进行相互通信;当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管,以实现故障应急。每台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高。在处理负载均衡时,集群系统可以通过一个或者多个前端负载均衡器(如上述主控服务器或称主服务器),将工作负载分发到后端的一组服务器(如上述从服务器)上,从而达到整个系统的高性能和高可用性。可见,本发明实施例采用该集群系统可以提高系统的稳定性和网络中心的数据处理能力及服务能力,并兼具负载均衡的考量,由于基于历史调度记录来运算得到上述隐匿负载(具体是隐匿因子),结合多个从属服务器(或称从服务器)的当前负载,从而可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
实施例四:
本发明实施例的任务调度方法,如图5所示,所述方法包括:
步骤401、接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
这里,目标对象指:由从属服务器(或称从服务器)构成的多个对象。主控服务器(或称主服务器)接收的第一任务可以是隐匿扫描场景中的扫描任务,由于集群系统中,主控服务器(或称主服务器)位于前端,多个从属服务器(或称从服务器)位于后端,需要主控服务器(或称主服务器)先对负载进行评估后,才能决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。因此,主控服务器(或称主服务器)会随机选取或者按照之前的调度经验值来选取,如从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i。
步骤402、收集所述k个目标对象分别对应的当前负载和历史调度记录。
这里,主控服务器(或称主服务器)采取随机选取方式时,随机从i个目标对象中选取出k个目标对象,将这k个从属服务器(或称从服务器)的当前负载和历史调度记录收集上来,以便用于负载评估,通过合理的调度,将决策出将当前的第一任务,具体如隐匿扫描场景中的扫描任务分配给多个从属服务器(或称从服务器)中的哪一个或哪几个去执行任务。
步骤403、根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载。
这里,主控服务器(或称主服务器)需要根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载(具体是隐匿因子),该隐匿负载即为隐匿扫描场景中的影响参数,由于本发明实施例增加了对隐匿负载(具体是隐匿因子)的考虑,并基于历史调度记录来运算得到该隐匿负载(具体是隐匿因子),可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
这里,所述k个目标对象分别对应的隐匿负载,由所述k个目标对象的任务组成参数来决定;所述任务组成参数包括:端口号、IP地址中的至少一种。当任务组成参数为端口号和IP地址时,本步骤中,根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载,可以包括:步骤4031、将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;步骤4032、将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;步骤4033、所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子和所述针对IP地址的第二隐匿负载因子运算得到的第三隐匿负载因子构成。需要指出的是,所述k个目标对象分别对应的隐匿负载,还可以由第三隐匿负载因子的倒数构成。
一个示例为:假设新任务的端口号为P,执行机Z对应的端口调度样本为P1,P2,P3......Pn,根据方差的计算公式可得新任务端口号的隐匿负载为
Figure BDA0001069181870000171
计算新任务IP地址的隐匿负载,要先将IP地址通过ntohl系统库函数将IP地址转化为整形然后再进行计算,假设新任务的IP地址为IP,执行机Z对应的IP地址调度样本为I1,I2,I3......In,同样利用方差的计算公式来计算得到IP地址的隐匿负载为
Figure BDA0001069181870000172
最后分布式隐匿网络扫描系统中每个执行机的隐匿负载的计算公式为:Y=YP+YI。将隐匿因子的倒数作为实际负载的一个参数会对后续基于负载评估的任务分配更加精准,理由是:隐匿负载或称隐匿因子的大小可以反应隐匿性的好坏。隐匿负载或称隐匿因子大,则隐匿性好;隐匿负载或称隐匿因子小,则隐匿性相对较差。但是对于执行机实际的负载来说,负载量越大,代表将任务分配给该执行机的概率越小;而根据历史调度记录计算出的某台执行机的隐匿负载或称隐匿因子越大,表示越应该将任务调度给这台执行机,因此,除了可以直接将隐匿负载或称隐匿因子进行实际负载的运算之外,更好的方式是将隐匿负载或称隐匿因子的倒数作为进行实际负载的运算的一个参数,这样,会更加精准。
步骤404、根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载。
这里,在主控服务器(或称主服务器)计算实际负载时,除了考虑步骤403中运算得到的隐匿负载(具体是隐匿因子),还需要把选取出的k个目标对象,即这k个从属服务器(或称从服务器)的当前负载也一起考虑进去,这样,算出的最终结果才是当前的实际负载。
这里,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
计算当前负载的一个示例为:在更新周期T内,当有新任务到来时,要先从Z1,Z2......Zi中随机选取K个执行机C1,C2......Ck,1≤K≤i,它们的负载分别为L1,L2......Li,当前任务以概率Pj分配给执行机Zi。执行机负载的计算利用执行机的性能作为参考依据,比如CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量以及网络负载流量中的至少一种等等。执行机负载计算公式为:Li=k1×cpu%+k2×memory%+k3×hard%,k1+k2+k3=1。其中,cpu%表示CPU使用率,memory%表示内存使用率,hard%表示硬盘使用量。k1,k2,k3指用户指定的权值。
步骤405、按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
这里,通过引入基于历史调度记录来运算得到隐匿负载(具体是隐匿因子),再结合之前运算得到的针对k个目标对象,即这k个从属服务器(或称从服务器)的当前负载,得到每一个从属服务器(或称从服务器)的实际负载,通过每一个从属服务器(或称从服务器)的实际负载运算得到集群系统中包含所有从属服务器(或称从服务器)的总负载,根据实际负载和总负载可以得到每一个从属服务器(或称从服务器)的负载率,根据该负载率与总负载率的比较,可以得到分配概率,从而可以将符合该分配概率的从属服务器(或称从服务器)找到,即找出符合预设策略的目标对象,将所述第一任务(具体如隐匿扫描场景中的扫描任务)分配给符合预设策略的一个或多个目标对象,并将其作为执行机来执行所述第一任务,在应用场景为隐匿扫描场景时,目标对象执行的任务为扫描任务,可以对外网进行扫描和/或访问。
本发明实施例中,涉及的大型集群系统的场景中,包含多个服务器,多个服务器中存在主控服务器(或称主服务器)和从属服务器(或称从服务器),其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。集群系统是将由一些互相连接在一起的计算机构成的一个并行或分布式系统,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。从外部来看,它们仅仅是一个系统,对外提供统一的服务。集群系统内的计算机物理上通过电缆连接,程序上则通过集群软件连接。这些连接允许计算机使用故障应急与负载平衡功能。集群系统中的多台服务器可以拥有共享数据存储空间,各服务器之间通过内部局域网进行相互通信;当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管,以实现故障应急。每台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高。在处理负载均衡时,集群系统可以通过一个或者多个前端负载均衡器(如上述主控服务器或称主服务器),将工作负载分发到后端的一组服务器(如上述从服务器)上,从而达到整个系统的高性能和高可用性。可见,本发明实施例采用该集群系统可以提高系统的稳定性和网络中心的数据处理能力及服务能力,并兼具负载均衡的考量,由于基于历史调度记录来运算得到上述隐匿负载(具体是隐匿因子),结合多个从属服务器(或称从服务器)的当前负载,从而可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
在本发明实施例一实施方式中,所述按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象,包括:按照所述k个目标对象分别对应的实际负载得到所有目标对象的总负载;根据所有目标对象的总负载和所述k个目标对象分别对应的实际负载得到每一个目标对象的负载率;根据每一个目标对象的负载率得到将所述第一任务分配给任意一个目标对象的概率值;将所述第一任务以所述概率值分配给对应的目标对象。其中,计算上述实际负载的一个示例为:Li=k1×cpu%+k2×memory%+k3×hard%+k4×(1/Y),k1+k2+k3+k4=1;其中,cpu%表示CPU使用率,memory%表示内存使用率,hard%表示硬盘使用量。k1,k2,k3,k4指用户指定的权值。计算上述总负载的一个示例为:
Figure BDA0001069181870000191
k表示执行机的个数。计算上述负载率的一个示例为:
Figure BDA0001069181870000201
计算上述概率值的一个示例为:
Figure BDA0001069181870000202
实施例五:
本发明实施例的集群系统中,如图包括主控服务器(或称主服务器)31和从属服务器(或称从服务器)32-33,其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。主控服务器31包括:接收单元311,用于接收新分配的第一任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤K≤i;收集单元312,用于收集所述k个目标对象分别对应的当前负载和历史调度记录;第一负载运算单元313,用于根据所述历史调度记录生成所述k个目标对象分别对应的隐匿负载;第二负载运算单元314,用于根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;分配单元315,用于按照所述k个目标对象分别对应的实际负载,将所述第一任务分配给符合预设策略的目标对象(如图6中的服务器32),并将其作为执行机来执行所述第一任务,以对外网进行扫描和/或访问。
本发明实施例中,主控服务器(或称主服务器)31和从属服务器(或称从服务器)32-33仅仅为示例,在大型集群系统的场景中,实际上包含多个服务器,多个服务器中存在一个或多个主控服务器(或称主服务器)和一个或多个从属服务器(或称从服务器),其中,主控服务器是用于对从属服务器进行综合管理,从属服务器在主控服务器的控制下,接收所分配的任务,执行任务。集群系统是将由一些互相连接在一起的计算机构成的一个并行或分布式系统,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。从外部来看,它们仅仅是一个系统,对外提供统一的服务。集群系统内的计算机物理上通过电缆连接,程序上则通过集群软件连接。这些连接允许计算机使用故障应急与负载平衡功能。集群系统中的多台服务器可以拥有共享数据存储空间,各服务器之间通过内部局域网进行相互通信;当其中一台服务器发生故障时,它所运行的应用程序将由其他的服务器自动接管,以实现故障应急。每台服务器都可承担部分计算任务,并且由于群集了多台服务器的性能,因此,整体系统的计算能力将有所提高。在处理负载均衡时,集群系统可以通过一个或者多个前端负载均衡器(如上述主控服务器或称主服务器),将工作负载分发到后端的一组服务器(如上述从服务器)上,从而达到整个系统的高性能和高可用性。可见,本发明实施例采用该集群系统可以提高系统的稳定性和网络中心的数据处理能力及服务能力,并兼具负载均衡的考量,由于基于历史调度记录来运算得到上述隐匿负载(具体是隐匿因子),结合多个从属服务器(或称从服务器)的当前负载,从而可以对隐匿扫描场景中的负载均衡评估会更加趋于精准。
在本发明实施例一实施方式中,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
在本发明实施例一实施方式中,所述k个目标对象分别对应的隐匿负载,由所述k个目标对象的任务组成参数来决定;所述任务组成参数包括:端口号、IP地址中的至少一种。
在本发明实施例一实施方式中,所述第一负载运算单元,进一步用于:从所述历史调度记录中解析出任务组成参数;所述任务组成参数包括:端口号、IP地址中的至少一种;将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子构成。或者,所述k个目标对象分别对应的隐匿负载,由第一隐匿负载因子的倒数构成。
在本发明实施例一实施方式中,所述第一负载运算单元,进一步用于:从所述历史调度记录中解析出任务组成参数;所述任务组成参数包括:端口号、IP地址中的至少一种;将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;所述k个目标对象分别对应的隐匿负载,由所述针对IP地址的第二隐匿负载因子构成。或者,所述k个目标对象分别对应的隐匿负载,由第二隐匿负载因子的倒数构成。
在本发明实施例一实施方式中,所述第一负载运算单元,进一步用于:从所述历史调度记录中解析出任务组成参数;所述任务组成参数包括:端口号和IP地址;将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子和所述针对IP地址的第二隐匿负载因子运算得到的第三隐匿负载因子构成。或者,所述k个目标对象分别对应的隐匿负载,由第三隐匿负载因子的倒数构成。
在本发明实施例一实施方式中,所述分配单元,进一步用于:按照所述k个目标对象分别对应的实际负载得到所有目标对象的总负载;根据所有目标对象的总负载和所述k个目标对象分别对应的实际负载得到每一个目标对象的负载率;根据每一个目标对象的负载率得到将所述第一任务分配给任意一个目标对象的概率值;将所述第一任务以所述概率值分配给对应的目标对象。
其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SingnalProcessor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;对于存储介质来说,包含操作指令,该操作指令可以为计算机可执行代码,通过所述操作指令来实现上述本发明实施例信息处理方法流程中的各个步骤。
这里需要指出的是:以上涉及终端和服务器项的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述。对于本发明终端和服务器实施例中未披露的技术细节,请参照本发明方法流程描述的实施例所描述内容。
以一个现实应用场景为例对本发明实施例阐述如下:
本隐匿扫描的应用场景中,采用本发明实施例,是一种基于历史调度记录的隐匿pick-kx算法来实现负载均衡及任务调度的方案。对本文涉及的技术术语进行描述:1)Pick-kx算法为一种动态负载均衡算法;2)方差为在概率论和统计方差衡量随机变量或一组数据时离散程度的度量。
针对Pick-kx算法而言,作为一种动态负载均衡算法,其基本原理是在更新周期T内,当有新任务到来时,要先从Z1,Z2......Zi中随机选取K个执行机C1,C2......Ck,1≤K≤i,K个执行机的负载分别为L1,L2......Li,当前任务以概率Pj分配给执行机Zi。执行机负载的计算利用执行机的性能作为参考依据,比如CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量以及网络负载流量等。
执行机负载计算公式:Li=k1×cpu%+k2×memory%+k3×hard%,k1+k2+k3=1。
由于目前的Pick-kx算法只考虑了各个执行的负载情况,但是其对负载的定义非常局限,只是简单的考虑了CPU使用率、内存使用率以及硬盘使用量等情况,对负载评估的计算不准确,尤其是针对分布式隐匿网络扫描系统的场景,不适用。采用本发明实施例,在Pick-kx算法原有的负载条件下添加了隐匿负载,使其满足分布式隐匿网络扫描的隐匿性特点,即:在Pick-kx负载均衡算法基础上,结合历史信息添加隐匿负载,使新方法在分布式隐匿网络扫描系统场景下也适用。
本隐匿扫描的应用场景中,采用本发明实施例,包括:1)对于隐匿因子首先计算新来任务端口号的隐匿负载,由于假设新任务的端口号为P,执行机Z对应的端口调度样本为P1,P2,P3......Pn,根据方差的计算公式可得新任务端口号的隐匿负载为
Figure BDA0001069181870000231
计算新任务IP地址的隐匿负载,要先将IP地址通过ntohl系统库函数将IP地址转化为整形然后再进行计算,假设新任务的IP地址为IP,执行机Z对应的IP地址调度样本为I1,I2,I3......In,同样利用方差的计算公式来计算得到IP地址的隐匿负载为
Figure BDA0001069181870000241
分布式隐匿网络扫描系统中每个执行机的隐匿负载的计算公式为Y=YP+YI
其中,Y大小可以根据方差求得,因此,Y反应了某个值相对于当前样本的偏离水平,Y的大小反应隐匿性的好坏,Y大,则隐匿性好;Y小,则隐匿性相对较差,但是对于执行机实际的负载来说负载量越大代表将任务分配给该执行机的概率越小,而根据历史调度记录计算出的某台执行机的隐匿因子越大,表示越应该将任务调度给这台执行机,因此,除了直接将隐匿因子Y作为实际负载的一项之前,更好的实现方式为:可以将隐匿因子的倒数作为实际负载的一个参数,这样会得到更加精准的处理结果。
采用本发明实施例,改进后的Pick-kx算法可形式化描述为:更新周期T内,当有新任务到来时,要先从执行机Z1,Z2......Zi中随机选取K个执行机C1,C2......Ck,1≤K≤i,它们的负载分别为L1,L2......Li,当前任务以概率Pj分配给执行机Zi
执行机负载计算公式如下所示:
Li=k1×cpu%+k2×memory%+k3×hard%+k4×(1/Y)
所有执行机总负载计算公式如下所示:
Figure BDA0001069181870000242
单个执行机负载率计算公式如下所示:
Figure BDA0001069181870000243
任务分配给执行机的概率如下所示:
Figure BDA0001069181870000244
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (14)

1.一种任务调度方法,其特征在于,应用于隐匿扫描场景中,所述方法包括:
接收新分配的所述隐匿扫描场景中的扫描任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤k≤i;
收集所述k个目标对象分别对应的当前负载和历史调度记录;
分别从所述历史调度记录中,解析得到所述k个目标对象对应的任务组成参数,所述任务组成参数包括以下至少之一:端口号、IP地址;
根据所述任务组成参数,生成所述k个目标对象分别对应的隐匿负载,所述隐匿负载大小反映所述任务组成参数的隐匿性的好坏;
根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;
按照所述k个目标对象分别对应的实际负载,将所述扫描任务分配给符合分配概率的目标对象,并将所述符合分配概率的目标对象作为执行机来执行所述扫描任务,以对外网进行扫描和/或访问。
2.根据权利要求1所述的方法,其特征在于,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;
所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
3.根据权利要求1所述的方法,其特征在于,当所述任务组成参数为端口号时,所述根据所述任务组成参数,生成所述k个目标对象分别对应的隐匿负载,包括:
将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;
所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子构成;
或者,所述k个目标对象分别对应的隐匿负载,由第一隐匿负载因子的倒数构成。
4.根据权利要求1所述的方法,其特征在于,当所述任务组成参数为IP地址时,所述根据所述任务组成参数,生成所述k个目标对象分别对应的隐匿负载,包括:
将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;
所述k个目标对象分别对应的隐匿负载,由所述针对IP地址的第二隐匿负载因子构成;
或者,所述k个目标对象分别对应的隐匿负载,由第二隐匿负载因子的倒数构成。
5.根据权利要求1所述的方法,其特征在于,当所述任务组成参数包括端口号和IP地址时,所述根据所述任务组成参数,生成所述k个目标对象分别对应的隐匿负载,包括:
将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;
将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;
所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子和所述针对IP地址的第二隐匿负载因子运算得到的第三隐匿负载因子构成;
或者,所述k个目标对象分别对应的隐匿负载,由第三隐匿负载因子的倒数构成。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述按照所述k个目标对象分别对应的实际负载,将所述扫描任务分配给符合分配概率的目标对象,包括:
按照所述k个目标对象分别对应的实际负载得到所有目标对象的总负载;
根据所有目标对象的总负载和所述k个目标对象分别对应的实际负载得到每一个目标对象的负载率;
根据每一个目标对象的负载率得到将所述扫描任务分配给任意一个目标对象的概率值;
将所述扫描任务以所述概率值分配给对应的目标对象。
7.一种服务器,其特征在于,应用于隐匿扫描场景中,所述服务器包括:
接收单元,用于接收新分配的所述隐匿扫描场景中的扫描任务,从由i个目标对象构成的第一候选集中选取k个目标对象,所述1≤k≤i;
收集单元,用于收集所述k个目标对象分别对应的当前负载和历史调度记录;
第一负载运算单元,用于分别从所述历史调度记录中,解析得到所述k个目标对象对应的任务组成参数,所述任务组成参数包括以下至少之一:端口号、IP地址;
根据所述任务组成参数,生成所述k个目标对象分别对应的隐匿负载,所述隐匿负载大小反应所述任务组成参数的隐匿性的好坏;
第二负载运算单元,用于根据所述k个目标对象分别对应的当前负载和所述k个目标对象分别对应的隐匿负载得到所述k个目标对象分别对应的实际负载;
分配单元,用于按照所述k个目标对象分别对应的实际负载,将所述扫描任务分配给符合分配概率的目标对象,并将所述符合分配概率的目标对象作为执行机来执行所述扫描任务,以对外网进行扫描和/或访问。
8.根据权利要求7所述的服务器,其特征在于,所述k个目标对象分别对应的当前负载,由所述k个目标对象的任务执行性能参数来决定;
所述任务执行性能参数包括:CPU使用率、内存使用率、硬盘使用量、服务器反馈时间、服务器的连接数量、网络负载流量中的至少一种。
9.根据权利要求7所述的服务器,其特征在于,所述第一负载运算单元,进一步用于:
当所述任务组成参数为端口号时,将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;
所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子构成;
或者,所述k个目标对象分别对应的隐匿负载,由第一隐匿负载因子的倒数构成。
10.根据权利要求7所述的服务器,其特征在于,所述第一负载运算单元,进一步用于:
当所述任务组成参数为IP地址时,将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;
所述k个目标对象分别对应的隐匿负载,由所述针对IP地址的第二隐匿负载因子构成;
或者,所述k个目标对象分别对应的隐匿负载,由第二隐匿负载因子的倒数构成。
11.根据权利要求7所述的服务器,其特征在于,所述第一负载运算单元,进一步用于:
当所述任务组成参数包括端口号和IP地址时,将包含所述端口号的样本作为第一调度样本,对所述第一调度样本执行方差运算,得到针对端口号的第一隐匿负载因子;
将包含所述IP地址的样本作为第二调度样本,对所述第二调度样本执行方差运算,得到针对IP地址的第二隐匿负载因子;
所述k个目标对象分别对应的隐匿负载,由所述针对端口号的第一隐匿负载因子和所述针对IP地址的第二隐匿负载因子运算得到的第三隐匿负载因子构成;
或者,所述k个目标对象分别对应的隐匿负载,由第三隐匿负载因子的倒数构成。
12.根据权利要求7至11任一项所述的服务器,其特征在于,所述分配单元,进一步用于:
按照所述k个目标对象分别对应的实际负载得到所有目标对象的总负载;
根据所有目标对象的总负载和所述k个目标对象分别对应的实际负载得到每一个目标对象的负载率;
根据每一个目标对象的负载率得到将所述扫描任务分配给任意一个目标对象的概率值;
将所述扫描任务以所述概率值分配给对应的目标对象。
13.一种计算机设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至6任一项所述的任务调度方法。
14.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至6任一项所述的任务调度方法。
CN201610631101.8A 2016-08-04 2016-08-04 一种任务调度方法及服务器 Active CN106681803B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610631101.8A CN106681803B (zh) 2016-08-04 2016-08-04 一种任务调度方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610631101.8A CN106681803B (zh) 2016-08-04 2016-08-04 一种任务调度方法及服务器

Publications (2)

Publication Number Publication Date
CN106681803A CN106681803A (zh) 2017-05-17
CN106681803B true CN106681803B (zh) 2020-10-16

Family

ID=58839847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610631101.8A Active CN106681803B (zh) 2016-08-04 2016-08-04 一种任务调度方法及服务器

Country Status (1)

Country Link
CN (1) CN106681803B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107887918A (zh) * 2017-12-01 2018-04-06 沈阳工程学院 基于改良的pick‑KX算法的分布式储能控制的优化方法
CN110719504A (zh) * 2019-09-19 2020-01-21 天脉聚源(杭州)传媒科技有限公司 虚拟观众席的数据处理系统和方法
CN111274026A (zh) * 2020-01-08 2020-06-12 北京月新时代科技股份有限公司 负载均衡方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719082A (zh) * 2009-12-24 2010-06-02 中国科学院计算技术研究所 虚拟化计算平台中应用请求调度的方法及其系统
CN102014042A (zh) * 2009-09-08 2011-04-13 中兴通讯股份有限公司 一种Web负载均衡方法、网格服务器及系统
CN103516807A (zh) * 2013-10-14 2014-01-15 中国联合网络通信集团有限公司 一种云计算平台服务器负载均衡系统及方法
CN104065745A (zh) * 2014-07-07 2014-09-24 电子科技大学 云计算动态资源调度系统和方法
CN105516369A (zh) * 2016-02-04 2016-04-20 城云科技(杭州)有限公司 视频云平台负载均衡方法及视频云平台负载均衡调度器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133798B2 (en) * 2014-06-18 2018-11-20 Alfresco Software, Inc. Content transformations using a transformation node cluster

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102014042A (zh) * 2009-09-08 2011-04-13 中兴通讯股份有限公司 一种Web负载均衡方法、网格服务器及系统
CN101719082A (zh) * 2009-12-24 2010-06-02 中国科学院计算技术研究所 虚拟化计算平台中应用请求调度的方法及其系统
CN103516807A (zh) * 2013-10-14 2014-01-15 中国联合网络通信集团有限公司 一种云计算平台服务器负载均衡系统及方法
CN104065745A (zh) * 2014-07-07 2014-09-24 电子科技大学 云计算动态资源调度系统和方法
CN105516369A (zh) * 2016-02-04 2016-04-20 城云科技(杭州)有限公司 视频云平台负载均衡方法及视频云平台负载均衡调度器

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Web服务器集群的负载均衡算法研究;王霜等;《计算机工程与应用》;20040901(第25期);第79页 *
一种基于历史信息反馈的动态服务资源选择模型;许兰等;《计算机应用》;20070901;第25卷(第10期);第2284-2285页 *
基于内容的Web服务器动态负载均衡算法;任国庆等;《计算机工程》;20100705;第36卷(第13期);第82-83,86页 *
基于历史信息的对等网络负载均衡算法;徐其廷等;《基于历史信息的对等网络负载均衡算法》;20081015;第25卷(第10期);第207-209页 *
算法、网络拓扑及调度频率与动态负载平衡的关系;胡子昂等;《计算机工程与科学》;20000229;第22卷(第1期);第104-107页 *

Also Published As

Publication number Publication date
CN106681803A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106899680B (zh) 多区块链的分片处理方法和装置
US20200364608A1 (en) Communicating in a federated learning environment
CN106878415B (zh) 数据消费的负载均衡方法及装置
US20120158858A1 (en) Resource Optimization for Online Services
US10003640B2 (en) Virtual world subgroup determination and segmentation for performance scalability
CN102378976B (zh) 使用多个处理器的图像压缩加速
CN106681803B (zh) 一种任务调度方法及服务器
Zhang et al. Novel efficient particle swarm optimization algorithms for solving QoS‐demanded bag‐of‐tasks scheduling problems with profit maximization on hybrid clouds
US20120233313A1 (en) Shared scaling server system
CN107317836A (zh) 一种混合云环境下时间可感知的请求调度方法
CN108667864B (zh) 一种进行资源调度的方法和装置
Ficco Could emerging fraudulent energy consumption attacks make the cloud infrastructure costs unsustainable?
Hassan et al. Efficient virtual machine resource management for media cloud computing
Chaudhary et al. An analysis of the load scheduling algorithms in the cloud computing environment: A survey
Imdoukh et al. Optimizing scheduling decisions of container management tool using many‐objective genetic algorithm
Jain et al. Critical analysis of load balancing strategies for cloud environment
Spicuglia et al. Join the best queue: Reducing performance variability in heterogeneous systems
US9501321B1 (en) Weighted service requests throttling
Malekimajd et al. Minimizing latency in geo-distributed clouds
CN112118314A (zh) 负载均衡方法和装置
Hanif et al. An efficient key partitioning scheme for heterogeneous MapReduce clusters
CN108200185B (zh) 一种实现负载均衡的方法及装置
CN110995802A (zh) 任务的处理方法和装置、存储介质及电子装置
CN115756740A (zh) 容器虚拟机资源管理方法、装置和电子设备
CN116955271A (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