CN112416589A - 一种用于运维平台定时作业错峰执行的方法 - Google Patents

一种用于运维平台定时作业错峰执行的方法 Download PDF

Info

Publication number
CN112416589A
CN112416589A CN202011314251.9A CN202011314251A CN112416589A CN 112416589 A CN112416589 A CN 112416589A CN 202011314251 A CN202011314251 A CN 202011314251A CN 112416589 A CN112416589 A CN 112416589A
Authority
CN
China
Prior art keywords
timing
task
tasks
execution
weight
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
Application number
CN202011314251.9A
Other languages
English (en)
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.)
Vcmy Guangzhou Technology Shares Co ltd
Original Assignee
Vcmy Guangzhou Technology Shares 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 Vcmy Guangzhou Technology Shares Co ltd filed Critical Vcmy Guangzhou Technology Shares Co ltd
Priority to CN202011314251.9A priority Critical patent/CN112416589A/zh
Publication of CN112416589A publication Critical patent/CN112416589A/zh
Pending legal-status Critical Current

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/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/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

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

Abstract

本发明提出一种用于运维平台定时作业错峰执行的方法,解决同一时刻大量任务之间的冲突,保证任务的正确执行不会被其他任务所影响。其操作为:设定在同一时间执行的任务上限数为N,根据定时任务的类型、执行范围设置相应的权重,并生成错峰执行表;执行如下步骤:步骤1,监控当前执行的定时任务数量,判断是否超过任务上限数;当定时任务数量小于N时,各定时任务并行;当定时任务数量大于或等N时,跳转至步骤2,执行错峰操作;步骤2,根据错峰执行表,按规则将一个高权重和若干个低权重的定时任务进行交叉组合并加入至任务队列中;步骤3,以多进程‑多线程的形式执行定时任务,任务队列的队尾每添加一个定时任务,队头则取出一个定时任务。

Description

一种用于运维平台定时作业错峰执行的方法
技术领域
本发明涉及一种用于运维平台定时作业错峰执行的方法。
背景技术
在自动化运维平台的日常工作中,需要创建大量的定时任务去巡检,监控平台管理的服务器及其他组件,这也是自动化运维平台摆脱人工操作的一个基础功能。但是在方便运维人员操作的同时也出现了一些异常问题。如创建了大量的定时任务,执行时间却在同一个时间段,对于一些消耗资源较小的作业任务可能影响不大,但是对于一些比较消耗资源空间的定时任务来说就是一个极大的问题。可能因为多个备份任务的并发执行耗时较长,长时间占用资源,导致其它任务堵塞甚至任务失败。
对于同一时刻的定时任务可能引发的问题,现有技术通常使用下述方法来解决以上问题:
通过中间件,队列等第三方组件来将同一时刻的任务进行削峰处理,将任务全部写入进消息队列,然后系统自己从消息队列中拉取任务去执行,从而将同一时刻的并行任务变成了串行,降低了任务之间的摩擦。虽然该方法解决了上述的问题,但是也存在着一些隐蔽的缺点:如有耗时长耗时短,占用资源不同,影响的主机范围不同等多种因素的任务,如果不考虑这些因素而将同一时刻任务全部塞进队列中则缺少执行任务时系统资源的合理使用。
而且对于运维平台出现同一时刻大量任务的情况也比较特殊,通过一些业务手段也能很好的规避。如:创建定时任务时返回给用户同一时刻的其他任务,推荐重新安排执行时间等方法也可以做到。但是当发生该问题的时候也要有对应的解决方法,所以针对特殊情况要再维护一套消息队列之类组件来说又有点小题大做。本来系统运行正常,出现问题可以快速锁定,现在通过消息队列等第三方组件来处理任务,虽然可以解决同一时刻问题执行的问题但是也使得系统可用性降低的同时还要考虑消息队列所带来的其他问题。
由此可见,现有技术不能对任务的资源占用率进行分析,同一时刻的资源使用可能分配不均,如出现耗时长,资源占用多的任务都在队列前面影响后面一些小任务的执行。现有技术所使用的队列组件维护成本较大,定时任务对于消息队列的依赖性强,从原先的主控机和目标机的直接通信传输,到现有中间技术的参与,出现问题的排查面更广。
发明内容
为克服现有技术中存在的问题,本发明提出一种用于运维平台定时作业错峰执行的方法,解决同一时刻大量任务之间的冲突,保证任务的正确执行不会被其他任务所影响。其具体技术内容如下:
一种用于运维平台定时作业错峰执行的方法,其操作为:
设定在同一时间执行的任务上限数为N,根据定时任务的类型、执行范围设置相应的权重,并生成错峰执行表;
执行如下步骤:
步骤1,监控当前执行的定时任务数量,判断是否超过任务上限数;
当定时任务数量小于N时,各定时任务并行;当定时任务数量大于或等N时,跳转至步骤2,执行错峰操作;
步骤2,根据错峰执行表,按规则将一个高权重和若干个低权重的定时任务进行交叉组合并加入至任务队列中;
步骤3,以多进程-多线程的形式执行定时任务,任务队列的队尾每添加一个定时任务,队头则取出一个定时任务。
于本发明的一个或多个实施例当中,在执行定时任务时,根据该定时任务上一次执行时的资源使用信息,结合错峰执行表对定时任务进行降序分权,以此来分配定时任务的权重。
于本发明的一个或多个实施例当中,所述资源使用信息包括执行耗时或/和CPU占用率。
于本发明的一个或多个实施例当中,若定时任务为首次执行,则默认排至任务队列最后执行。
于本发明的一个或多个实施例当中,在定时任务执行时,实时监控该定时任务的资源使用信息,并将对应资源使用信息保存起来以用于下次执行定时任务时的任务分析。
于本发明的一个或多个实施例当中,所述规则是,将当前定时任务中一个权重最高的定时任务与若干个权重最低的定时任务组成一组,加入至任务队列中;然后将余下定时任务中的一个权重最高的定时任务与若干个权重最低的定时任务组成一组,加入至任务队列中;依此类推。
于本发明的一个或多个实施例当中,对定时任务设置回滚机制,若定时任务执行退出后的状态为失败,则标注为未执行,重新按序进入任务队列执行。
于本发明的一个或多个实施例当中,所述任务上限数为N设定为5。
于本发明的一个或多个实施例当中,在步骤3取出定时任务准备执行时,先判断待取出定时任务的权重数值是否为高数值,如果前面高权重的定时任务还在执行中,则不提取执行下一个高权重的定时任务,而是优先取出执行低权重的定时任务,以达到一个高高权重定时任务与若干个低权重定时任务并列执行。
本发明的有益效果是:通过监控定时任务,对定时任务进行解析,合理分配任务的执行顺序,保证了任务之间的兼容性。在执行耗时长任务的同时不能让它一直阻塞执行而是同步的执行一些耗时短,占用资源小的任务与之配合达到服务资源的合理分配。通过代码实现队列技术将同一时间的大量任务由并行转为串行,削减了同一时刻对于服务器的一个资源占用情况,保证一些需要有大量资源供给的任务它们的有效性和正确性。本发明的优越性体现在:
1,通过代码层面实现队列技术,在解决同一时间任务冲突问题的同时又不需要维护队列组件等其他中间件。
2,对于错峰执行的任务从资源占用方面进行了解析组合,高资源占用任务执行的同时同步执行低资源占用任务,合理的利用资源。
附图说明
图1为本发明的执行流程图。
具体实施方式
为了使同一时刻大量定时任务进行错峰执行并合理的利用现有资源。减少其性能消耗,同时解决上述问题,下面结合附图1对本发明的实施方式进行详细说明:
一种用于运维平台定时作业错峰执行的方法,其包括:
在运维平台中将定时任务都保存在数据库的任务表中,该表中有定时任务的名称、类型、执行时间、目标机器等信息。当有任务定时执行的时候会先读下该任务表查看同一时间或接近时间的任务数量;由此,同一时间执行5条及以上定时任务时,将进行错峰操作。
在运维平台会划分备份模块、发布模块、补丁模块、作业模块等多个功能模块,通过在不同模块下创建任务会保存该任务的类型,如备份模块下创建的任务都是属于备份任务,然后保存该任务到数据库的任务表中。
所述错峰操作是:
对任务类型进行分析设置权重,将备份,发布,补丁等定时任务设置为10,并保存对应任务id至错峰执行表中;对于执行范围广,涉及到的目标主机多的任务设置为9;然后查看上次定时任务执行时所用时间,cpu占用率等再进行依次降序分权,如未有任务执行记录则默认排队到最后执行,以此来分配任务权重。
将一个权重为10的任务和多个权重为1的任务进行交叉组合然后进入到任务队列中,权重为9的任务和多个权重为2的组合进入到任务队列中,保证占用资源最多的任务执行的时候有其他不是很耗资源,用时少的任务同步执行。继而通过python的队列模块实现队列技术,创建任务队列将任务id添加至队列中。以多进程+多线程的形式执行任务,队尾添加一个任务,队头取出一个任务,在保证任务执行的效率同时合理的利用平台系统资源。通过python自带的队列模块实现队列技术并新增任务的权重判断功能,来判断每次从队列中执行任务的一个数值是否符合我们所定义的。
在取出任务执行的时候会通过查看数据库任务表该任务上次的执行情况或该任务的任务类型(我们判定备份、补丁、发布任务属于我们运维平台的高资源消耗任务)来判断该任务的权重数值是否为高数值,也就是查看该任务是否十分消耗服务器资源,如果前面高权重的高消耗资源任务还在执行中就不会接着执行下一个高资源消耗任务而是优先执行低消耗也就是权重数值低的任务,达到一个高资源消耗任务执行的同时并列执行一些消耗资源低任务的效果,在保证任务执行的效率同时合理的利用平台系统资源而且不会影响到其他业务。上述权重设置为10、设置9是对定时任务消耗资源的一个数值定义,数值越大说明任务消耗的资源越多,数值越小说明不怎么消耗服务器资源;例如:可以定义权重为5及以上为高权重,权重为4及以下为低权重。
本发明通过从数据库中的任务表获取到任务上次的执行时间及资源占用情况来划分任务的数值。消耗资源最多执行时间最长的任务分配给它最高权重10,以此类推。如果同一时间有多个数值为10的任务并列执行,十分消耗服务器资源,cpu内存甚至可能达到100%,这样可能会影响到服务器的其他业务使用,所以我们通过这个数值来将任务进行排序,保证同一时间不会执行多个数值为10的任务并列执行。达到同一时间有1个数值高的任务和多个数值低就是基本不消耗服务器资源的任务并列执行,这样既可以达到充分利用服务器资源又不会影响到其他业务。定时读取数据库中的任务表来将定时任务添加到任务队列中,该任务队列会根据权重数值自动将1个权重数值高的任务也就是最为消耗服务器资源的任务和多个权重数值低的任务进行并列执行,并且保证在前一个数值高也就是最为消耗服务器资源的任务没有执行结束前,不会并列执行下一个同样数值高的任务。这样既可以充分利用服务器的资源又不会出现同时几个高资源消耗的任务并列执行从而影响到其他业务的情况出现。
在任务执行时,实时监控任务的资源使用情况,查看cpu、内存、进程等,将其任务对应的如上信息保存起来以便下次执行任务时用来分析任务情况。在运维平台中将任务都保存在数据库的任务表中,表中有任务的名称、类型、执行时间、目标机器等信息,从数据库中的任务表可以查看每个任务执行的详细信息及该任务上几次的执行信息。
为定时任务设置回滚机制,在定时任务执行完成后其状态为失败,未执行的任务再次执行,以保证任务有效性。在定时任务执行完会返回给队列一个返回值,执行失败会有对应的返回值标识,以此来判断任务是否执行失败,如果执行成功或者失败都是记录到数据库中的任务表中,如果任务表中没有记录执行状态说明还未执行。
上述优选实施方式应视为本申请方案实施方式的举例说明,凡与本申请方案雷同、近似或以此为基础作出的技术推演、替换、改进等,均应视为本专利的保护范围。

Claims (9)

1.一种用于运维平台定时作业错峰执行的方法,其特征在于:
设定在同一时间执行的任务上限数为N,根据定时任务的类型、执行范围设置相应的权重,并生成错峰执行表;
执行如下步骤:
步骤1,监控当前执行的定时任务数量,判断是否超过任务上限数;
当定时任务数量小于N时,各定时任务并行;当定时任务数量大于或等N时,跳转至步骤2,执行错峰操作;
步骤2,根据错峰执行表,按规则将一个高权重和若干个低权重的定时任务进行交叉组合并加入至任务队列中;
步骤3,以多进程-多线程的形式执行定时任务,任务队列的队尾每添加一个定时任务,队头则取出一个定时任务。
2.根据权利要求1所述的用于运维平台定时作业错峰执行的方法,其特征在于:在执行定时任务时,根据该定时任务上一次执行时的资源使用信息,结合错峰执行表对定时任务进行降序分权,以此来分配定时任务的权重。
3.根据权利要求2所述的用于运维平台定时作业错峰执行的方法,其特征在于:所述资源使用信息包括执行耗时或/和CPU占用率。
4.根据权利要求2所述的用于运维平台定时作业错峰执行的方法,其特征在于:若定时任务为首次执行,则默认排至任务队列最后执行。
5.根据权利要求2或3所述的用于运维平台定时作业错峰执行的方法,其特征在于:在定时任务执行时,实时监控该定时任务的资源使用信息,并将对应资源使用信息保存起来以用于下次执行定时任务时的任务分析。
6.根据权利要求1-4任一项所述的用于运维平台定时作业错峰执行的方法,其特征在于:所述规则是,将当前定时任务中一个权重最高的定时任务与若干个权重最低的定时任务组成一组,加入至任务队列中;然后将余下定时任务中的一个权重最高的定时任务与若干个权重最低的定时任务组成一组,加入至任务队列中;依此类推。
7.根据权利要求1-4任一项所述的用于运维平台定时作业错峰执行的方法,其特征在于:对定时任务设置回滚机制,若定时任务执行退出后的状态为失败,则标注为未执行,重新按序进入任务队列执行。
8.根据权利要求1-4任一项所述的用于运维平台定时作业错峰执行的方法,其特征在于:所述任务上限数为N设定为5。
9.根据权利要求1-4任一项所述的用于运维平台定时作业错峰执行的方法,其特征在于:在步骤3取出定时任务准备执行时,先判断待取出定时任务的权重数值是否为高数值,如果前面高权重的定时任务还在执行中,则不提取执行下一个高权重的定时任务,而是优先取出执行低权重的定时任务,以达到一个高高权重定时任务与若干个低权重定时任务并列执行。
CN202011314251.9A 2020-11-21 2020-11-21 一种用于运维平台定时作业错峰执行的方法 Pending CN112416589A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011314251.9A CN112416589A (zh) 2020-11-21 2020-11-21 一种用于运维平台定时作业错峰执行的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011314251.9A CN112416589A (zh) 2020-11-21 2020-11-21 一种用于运维平台定时作业错峰执行的方法

Publications (1)

Publication Number Publication Date
CN112416589A true CN112416589A (zh) 2021-02-26

Family

ID=74778690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011314251.9A Pending CN112416589A (zh) 2020-11-21 2020-11-21 一种用于运维平台定时作业错峰执行的方法

Country Status (1)

Country Link
CN (1) CN112416589A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849292A (zh) * 2021-11-30 2021-12-28 天聚地合(苏州)数据股份有限公司 定时任务的执行方法、装置、存储介质及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076043A1 (en) * 2003-10-02 2005-04-07 International Business Machines Corporation Workload scheduler with resource optimization factoring
JP2005107632A (ja) * 2003-09-29 2005-04-21 Japan Research Institute Ltd Eaiサーバおよびeaiサーバのプログラム
CN1615471A (zh) * 2000-06-27 2005-05-11 皇家菲利浦电子有限公司 确定一个进度表的方法、调度器和系统
CN109391680A (zh) * 2018-08-31 2019-02-26 阿里巴巴集团控股有限公司 一种定时任务数据处理方法、装置及系统
CN110309024A (zh) * 2019-04-23 2019-10-08 网宿科技股份有限公司 数据处理系统及其执行数据处理任务的方法
CN111580954A (zh) * 2020-04-01 2020-08-25 中国科学院信息工程研究所 一种可扩展的分布式数据采集方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1615471A (zh) * 2000-06-27 2005-05-11 皇家菲利浦电子有限公司 确定一个进度表的方法、调度器和系统
JP2005107632A (ja) * 2003-09-29 2005-04-21 Japan Research Institute Ltd Eaiサーバおよびeaiサーバのプログラム
US20050076043A1 (en) * 2003-10-02 2005-04-07 International Business Machines Corporation Workload scheduler with resource optimization factoring
CN109391680A (zh) * 2018-08-31 2019-02-26 阿里巴巴集团控股有限公司 一种定时任务数据处理方法、装置及系统
CN110309024A (zh) * 2019-04-23 2019-10-08 网宿科技股份有限公司 数据处理系统及其执行数据处理任务的方法
CN111580954A (zh) * 2020-04-01 2020-08-25 中国科学院信息工程研究所 一种可扩展的分布式数据采集方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849292A (zh) * 2021-11-30 2021-12-28 天聚地合(苏州)数据股份有限公司 定时任务的执行方法、装置、存储介质及设备

Similar Documents

Publication Publication Date Title
CN107992362B (zh) 自动化性能测试的方法、装置及系统
US7810099B2 (en) Optimizing workflow execution against a heterogeneous grid computing topology
US6411982B2 (en) Thread based governor for time scheduled process execution
US8375228B2 (en) Multiple-node system power utilization management
Setzer et al. Decision support for virtual machine reassignments in enterprise data centers
CN112667376A (zh) 任务调度处理方法、装置、计算机设备及存储介质
US20080172398A1 (en) Selection of Processors for Job Scheduling Using Measured Power Consumption Ratings
CN102981945B (zh) 一种可靠性能监控系统及方法
CN112272203A (zh) 一种集群业务节点选择方法、系统、终端及存储介质
CN110138688A (zh) 动态调整业务接口的方法、装置、设备及可读存储介质
CN108234189B (zh) 一种告警数据处理方法和装置
CN115543577A (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN114818565A (zh) 基于python的仿真环境管理平台、方法、设备及介质
CN112416589A (zh) 一种用于运维平台定时作业错峰执行的方法
CN116795625A (zh) 一种基于Java的多线程性能测试的方法及系统
CN116700920A (zh) 云原生混合部署集群资源调度方法及装置
CN110879753B (zh) 基于自动化集群资源管理的gpu加速性能优化方法和系统
CN112162839A (zh) 任务调度方法、装置、计算机设备和存储介质
CN107391262B (zh) 一种作业调度方法及装置
CN111541646A (zh) 一种增强密码机安全服务接入能力的方法
CN115712572A (zh) 任务的测试方法、装置、存储介质及电子装置
CN111538604B (zh) 分布式任务处理系统
CN114489970A (zh) Kubernetes中利用Coscheduling插件实现队列排序的方法及系统
CN110928679B (zh) 一种资源分配方法及装置
CN110597608B (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