首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于日志的数据中心批处理任务负载生成方法 

申请/专利权人:北京工业大学

申请日:2024-03-19

公开(公告)日:2024-06-28

公开(公告)号:CN118260072A

主分类号:G06F9/50

分类号:G06F9/50;G06N5/01;G06F11/34

优先权:

专利状态码:在审-公开

法律状态:2024.06.28#公开

摘要:本发明涉及一种基于日志的数据中心批处理任务负载生成方法,包括初始化、批处理任务负载资源使用序列的还原、批处理任务负载基本块的构建、批处理任务负载的提交执行。该方法根据日志中节点层面的粗粒度时序资源使用信息采样时间间隔较长、任务层面的任务实例统计量资源使用信息CPU、内存使用率均值和峰值及任务实例的开始时间与结束时间,以上述信息为约束使用启发式算法进行每一个批处理任务负载资源使用序列内存、CPU序列的还原;构建批处理任务负载基本块,产生任意序列所对应的波动形式的内存、CPU负载;将负载基本块以批处理任务负载资源使用序列为参数、按照日志记录的提交时间提交至节点进行负载的实际运行与测试。

主权项:1.一种基于日志的数据中心批处理任务负载生成方法,其特征在于包括四个步骤:初始化、批处理任务负载资源使用序列的还原、批处理任务负载基本块的构建、批处理任务负载的提交执行;有七个基本参数:初始温度Tinit,最小温度Tmin,冷却率CoolingRate,正态分布设定方差Sigma,任务实例分级阈值Thr,随机概率rnd,JAYA算法生成解数量NJAYA;其中,Tinit取值在5000-10000之间,Tmin取值在0.1-100之间,CoolingRate取值在0.75-0.999之间,Sigma取值在1-5之间,Thr取值在50-100之间,rnd取值在0.75-0.9之间,NJAYA取值在5-10之间;1初始化;对日志中单个节点层面的粗粒度时序资源使用信息,即时间戳采样点与CPU、内存使用率一一对应的系列值进行读入;对日志中单个节点内任务层面的任务实例的CPU、内存使用率均值、峰值和开始、结束时间按照节点进行读入;1.1令日志中单个时间戳与其记录的资源使用信息元组格式为TimeStampUsage=timestamp,CPUusage,MEMusage,元组中timestamp表示采样时间,CPUusage表示该采样时间下的CPU使用率,MEMusage表示该采样时间下的内存使用率;1.2令日志中单个任务实例的运行时间与资源使用信息元组格式为TaskUsage=Stime,Etime,PeakMEM,PeakCPU,MeanMEM,MeanCPU,元组中Stime表示任务实例开始执行的时间,Etime表示任务实例结束执行的时间,PeakMEM表示任务实例在整个执行时间段的最大内存使用率,PeakCPU表示任务实例在整个执行时间段的最大CPU使用率,MeanMEM表示任务实例在整个执行时间段的平均内存使用率,MeanCPU表示任务实例在整个执行时间段的平均CPU使用率;1.3令记录日志中单个节点的单个时间戳与其记录的资源使用信息元组的列表为TimeSeriesNode,令记录日志中单个任务实例的运行时间与资源使用信息元组的列表为SetTask,令日志中单个节点的单个时间戳与其记录的资源使用信息元组的读入迭代轮数为inode,inode=1;元组总数量为nnode;令日志中单个任务实例的运行时间与资源使用信息元组的读入迭代轮数为itask,itask=1;元组总数量为ntask;1.4当前读入单个节点的单个时间戳与其记录的资源使用信息元组迭代数为inode,将第inode个单个时间戳与其记录的资源使用信息元组标记为将1.5若inode=nnode则转至步骤1.6;否则inode=inode+1后转至步骤1.4;1.6当前读入单个任务实例的运行时间与资源使用信息元组的迭代数为itask,将第itask个单个时间戳与其记录的资源使用信息元组标记为将1.7若itask=ntask则转至步骤2;否则itask=itask+1后转至步骤1.6;2批处理任务负载资源使用序列的还原;2.1设资源使用序列的还原轮次为Round,Round=1;Round=1,代表还原CPU资源使用序列;Round=2,代表还原内存资源使用序列;设CPU资源使用序列最终还原结果列表为SolutionSetCPU,设内存资源使用序列最终还原结果列表为SolutionSetMEM;2.2初始化资源使用序列列表,过程如下:2.2.1令任务实例的资源使用序列列表为SolutionSet,令任务实例与CPU或内存之一相关的资源使用信息列表为TaskSet;设迭代轮次itask=1;2.2.2若Round=1,取SetTask中的令令若Round=2,令令令元组记录任务实例与CPU或内存相关的资源使用信息,将设第itask个任务实例的资源使用序列列表为即一个长度为的列表,列表中的每一个位置是以均值,以Sigma为标准差的正态分布随机值;将2.2.3若itask=ntask则转至步骤2.2.4;否则itask=itask+1后转至步骤2.2.2;2.2.4令节点时间戳记录信息与CPU或内存之一相关的资源使用信息列表为NodeSet;设迭代轮次inode=1;2.2.5若Round=1,取TimeSeriesNode中的令若Round=2,令元组记录任务实例与CPU或内存相关的资源使用信息,将令该时间戳时正在运行的任务实例列表为Task_EFF,令Task_EFF0、Task_EFF1、Task_EFF2为三个分级任务实例列表,初始均为取出TaskSet列表中所有满足的元素Taskk;将Taskk-Task_EFF;2.2.6迭代Task_EFF中的每一个元素Taskk,若Etimek=Stimek,则将该元素加入Task_EFF0;若则将该元素加入Task_EFF1;否则加入Task_EFF2;2.2.7令inode对应时间戳剩余可分配资源量为令实例分级迭代轮数为ilevel=0;2.2.8令中所有元素Peak值总和为PeakSum,所有元素Mean值总和为MeanSum;若则令中所有元素所对应的与其下标k相同的SolutionSet中的令ilevel=ilevel+1,并转至步骤2.2.8;否则令中所有元素所对应的与其下标k相同的SolutionSet中的并转至步骤2.2.9;2.2.9若inode=nnode则转至步骤2.3;否则inode=inode+1后转至步骤2.2.5;2.3令当前温度T=Tinit;2.4若TTmin,T=T×CoolingRate,记录当前SolutionSet,令OSolutionSet=SolutionSet并转至步骤2.5;否则转至步骤2.92.5使用式12计算当前任务实例的资源使用序列列表与日志偏差代价值为Costlast,其中为TaskSet中中的元素;为中的元素; 为SolutionSet中中元素的均值,为SolutionSet中中元素的最大值;取TaskSet列表中所有满足的元素Taskk;为与其下标k相同的SolutionSet中的的累和;2.6邻域解迭代算法开始,过程如下:2.6.1产生一个1至ntask之间的随机数rand1,产生一个0至1之间的随机数rand2,若rand2rnd,取SolutionSet中的Solutionrand1,产生一个1至Solutionrand1内元素个数的随机数rand3,对Urand1,rand3加一个均值为0方差为0.5的正态分布随机数,转至步骤2.7;否则转至步骤2.6.2;2.6.2取SolutionSet中的Solutionrand1,令u=1,设JAYA算法邻域任务实例的资源使用序列列表为设JAYA算法邻域任务实例的资源使用序列列表代价值列表为取TaskSet中Taskrand1的Stimerand1,Etimerand1,若PosjayaStimerand1≤Posjaya≤Etimerand1等于NodeSet中任意元素中的timestamp值,则Posjaya-Stimerand1称为禁止位置;2.6.3若u≤NJAYA,将Solutionrand1除步骤2.14中提出的禁止位置外的每一个元素分别加一个均值为0方差为0.1的正态分布随机数后的列表命名为JAYA_Solutionu;将JAYA_Solutionu-SolutionJAYA;根据式2计算任务实例的资源使用序列列表代价值JAYA_CostuJAYA_Costu=|Meanrand1-JMeanu|+|Peakrand1-JPeaku|2其中Meanrand1,Peakrand1为TaskSet中Taskrand1中的元素;JMeanu为JAYA_Solutionu中元素的均值,JPeaku为JAYA_Solutionu中元素的最大值;将JAYA_Costu-CostJAYA;最后将u=u+1并转至步骤2.6.3;否则转至步骤2.6.42.6.4记CostJAYA中最小值下标为best,最大值下标为worst;将Solutionrand1的每一个元素记为XposStimerand1≤pos≤Etimerand1,对Solutionrand1的每一个Xpos根据式3进行更新;Xpos=Xpos+R1Xbest,pos-Xpos-R2Xworst,pos-Xpos3其中Xbest,pos为JAYA_Solutionbest的第pos个元素,其中Xworst,pos为JAYA_Solutionworst的第pos个元素,R1、R2为两个0至1之间的随机数;转至步骤2.7;2.7首先令Costold=Costlast,然后重新使用式12计算更新后任务实例的资源使用序列列表与日志偏差代价值为Costlast;若CostlastCostold,则转至步骤2.4;否则转至步骤2.82.8生成一个0至1之间的随机数,若该随机数小于则转至步骤2.4;否则令SolutionSet=OSolutionSet并转至步骤2.4;2.9若Round=1,令Round=2,SolutionSetCPU=SolutionSet,并转至步骤2.2;否则令SolutionSetMEM=SolutionSet并转至步骤3;3批处理任务负载基本块的构建3.1构造CPU负载基本块CPUBlock,设计其输入参数为一个长度任意的列表,命名为CPUList,使用iCPU循环迭代CPUList中的每一个元素,每一秒执行一次循环,循环内部程序操作如下:3.1.1取CPUList中第iCPU个元素,命名为若即多核执行,转至步骤3.1.2;否则转至步骤3.1.3;3.1.2创建个线程,进行CPU随机数加减运算,持续到3.1.3结束,令3.1.3创建1个线程,进行秒的CPU随机数加减运算;此后休眠秒;3.1.4若iCPU等于CPUList的长度,转至步骤3.2;否则令iCPU=iCPU+1转,并至步骤3.1.1;3.2构造内存负载基本块MEMBlock,设计其输入参数为与CPUList长度相同的列表,命名为MEMList,使用iMEM循环迭代MEMList中的每一个元素,每一秒执行一次循环,循环内部程序操作如下:3.2.1取MEMList中第iMEM个元素,命名为若iMEM=1,则转至步骤3.2.2;否则转至步骤3.2.3;3.2.2首次申请内存,使用malloc函数申请占据节点内存,并使用memset函数为每个内存空间赋予0值;3.2.3非首次申请内存,若则使用realloc以及free函数释放节点内存;否则使用realloc函数新申请节点内存,并使用memset函数为每个新申请的内存空间赋予0值;3.2.4若iMEM等于MEMList的长度,转至步骤3.3;否则令iCPU=iCPU+1转,并至步骤3.2.1;3.3将内存负载基本块MEMBlock与CPU负载基本块CPUBlock设置为并行执行状态,组合为完整的批处理任务负载基本块的构建,命名为FullBlock,其输入参数要求为两个长度相同的列表CPUList与MEMList;4批处理任务负载的提交执行4.1取SetTask中所有元素TaskUsage中Stime最小的元素,即开始时间最小的元素,令itask等于其下标;4.2将SolutionSetCPU的第itask个元素作为参数CPUList输入负载基本块,将SolutionSetMEM的第itask个元素作为参数MEMList输入负载基本块,并启动执行负载基本块;从SetTask中标记第已执行完毕,设当前时间为Time,4.3若SetTask中有未执行的元素,则取SetTask中所有标记为未执行元素TaskUsage中Stime最小的元素,即开始时间最小的元素,令itask等于其下标,等待秒后转至步骤4.2;否则转至步骤5;5批处理任务负载生成完毕。

全文数据:

权利要求:

百度查询: 北京工业大学 一种基于日志的数据中心批处理任务负载生成方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。