CN119473564A 针对NUMA架构下Direct IO密集型任务的调度方法及系统 (麒麟软件有限公司)_第1页
CN119473564A 针对NUMA架构下Direct IO密集型任务的调度方法及系统 (麒麟软件有限公司)_第2页
CN119473564A 针对NUMA架构下Direct IO密集型任务的调度方法及系统 (麒麟软件有限公司)_第3页
CN119473564A 针对NUMA架构下Direct IO密集型任务的调度方法及系统 (麒麟软件有限公司)_第4页
CN119473564A 针对NUMA架构下Direct IO密集型任务的调度方法及系统 (麒麟软件有限公司)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

新区塘沽海洋科技园信安创业广场3针对NUMA架构下DirectIO密集型任务的调本发明提供一种针对NUMA架构下DirectIO通过bpfmap与回调函数进行交互,实现任务的2S4、通过libbpf库将所述bpf回调函数附加到所述sched_ext可扩展调度器各回调点,2.根据权利要求1所述的针对NUMA架构下DirectIO密读取/proc/schedstat文件,文件中有关于系统中各CPU的调度域层3.根据权利要求1所述的针对NUMA架构下DirectIO基于Linux内核的sched_ext可扩展调度器编写bpf程序,实现相4.根据权利要求1所述的针对NUMA架构下DirectIO密集型任务的从bpfenqueuedmap中取出任务进行排队,如果任务距离上次采样35.根据权利要求1所述的针对NUMA架构下DirectIO检查DirectIO密集型任务正在访问的磁盘设备及所处的NUMA节点是否已经设置,如低层级的cpumask掩码通过dispatchedmap传递到bpf回调函数dis6.根据权利要求1所述的针对NUMA架构下DirectIO密集型定期遍历DirectIO密集型任务当前调度域范围内所有CPU的利用率,计算平均CPU利7.根据权利要求1所述的针对NUMA架构下DirectIO设定检查所述DirectIO密集型任务的私有内存在各NUMA节点的分布的定期时间,时策略模块:通过libbpf库将所述bpf回调函数附加到所述sched_ex设定的阈值来决定是否需要将内存迁移到正在访问机程序用于执行如权利要求1_7任一项所述的针对NUMA架构下DirectIO密集型任务的调45[0001]本发明属于操作系统技术领域,具体涉及一种针对NUMA架构下DirectIO密集型[0005]本发明的目的在于提供一种针对NUMA架构下DirectIO密集型任务的调度方法及6构体变量记录每个PCI设备及所对应的调用C库函数pthread_create()预先申请工作线程,每个工作线程调用pthread_基于Linux内核的sched_ext可扩展调度器编写bpf程序,实现相关bpf回调函数,所述相关bpf回调函数包括:init回调函数,init_task回调函数,select_cpu回调函数,检查DirectIO密集型任务正在访问的磁盘设备及所处的NUMA节点是否已经设定期遍历DirectIO密集型任务当前调度域范围内所有CPU的利用率,计算平均设定检查所述DirectIO密集型任务的私有内存在各NUMA节点的分布的定期时7[0013]本发明另一方面还提出了一种针对NUMA架构下DirectIO密集型任务的调度系根据设定的阈值来决定是否需要将内存迁移到正在访述计算机程序用于执行上述的针对NUMA架构下DirectIO密集型任器执行时实现上述的针对NUMA架构下DirectIO密集8[0029]BPF:全称为BerkeleyPacketFilter,最初是作为一种高效的网络数据包过滤可以方便的将本发明针对DirectIO密集型任务调度方法进行部9[0042]S3:基于Linux内核的sched_ext可扩展调度器编写bpf程序实现相关bpf回调函简称为ops.select_cpu如加载的程序定义了该回调接口则调用执行,如果没有定义则在用户态调度程序中,通过libbpf_bootstrap框架加载bpf程序时,赋值usr_[0046]函数中调用bpfhelper函数bpf_task_stor加一个bpf条目:bpf_task_storage_get(&task_ctx_stor,p,0,BPF_LOCAL_STORAGE_GET_map类型为BPF_MAP_TYPE_QUEUE,map中每个value对应一个入队的进程,value用struct提供的kfunc函数scx_bpf_pick_any_cpu()从任务可运行的CPU范围中选取一个空闲且在[0049]S4:通过libbpf库将回调函数附加到内核的sched_ext调度器各回调点,接管调用bpf_objectload_skeleton()将各回调函数加载到内核;调用bpf_objectattach_skeleton()将各回调函数附加到sched_ext调度器各回调点。[0051]S5:通过bpfmap与回调函数进行交互,由用户态调度程序实现任务的排队和派[0052]示例性的:在S3中的enqueue回调函数中,任务会入队到全局创建的bpfmap:排队,然后将排队后的任务一一入队到全局创建的bpfmap:dispatched中;在S3中的为t时刻IO量的加权移动平均值;;与NUMA节点进行匹配并记录。同时,初始化任务的调度域为最低层级,将最低层级的cpumask掩码通过dispatchedmap传递到bpf回调函数d小。如果超过设定的阈值比如超过20个页,则调用C库函数migrate_pages()进行内存迁[0063]对于DirectIO密集型任务提供的特定调度方法,可以最大限度的减少该类根据设定的阈值来决定是否需要将内存迁移到正在访调用C库函数pthread_create()预先申请工作线程,每个工作线程调用pthread_基于Linux内核的sched_ext可扩展调度器编写bpf程序,实现相关bpf回调函数,所述相关bpf回调函数包括:init回调函数,init_task回调函数,select_cpu回调函数,检查DirectIO密集型任务正在访问的磁盘设备及所处的NUMA节点是否已经设定期遍历DirectIO密集型任务当前调度域范围内所有CPU的利用率,计算平均设定检查所述DirectIO密集型任务的私有内存在各NUMA节点的分布的定期时[0072]本实施例二提出的针对NUMA架构下DirectIO密集型任务的调度系统,能够实现实施例一提出的针对NUMA架构下DirectIO密集型任务的调度方法,并具有与实施例一相些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论