一种面向边缘I/O密集型应用的混合CPU调度方法技术

技术编号:29702836 阅读:9 留言:0更新日期:2021-08-17 14:31
一种面向边缘I/O密集型应用的混合CPU调度方法。本发明专利技术涉及一种提升边缘I/O密集型应用实时性与吞吐量的混合CPU调度方法。本发明专利技术中的I/O性能度量模块能对当前系统的各种I/O资源进行性能剖析,并根据I/O资源的量化参数为进程分配默认I/O资源的消耗阈值。本发明专利技术中的I/O资源需求感知模块能对进程的各种I/O行为实时监控,量化进程运行时对各种I/O资源的需求。本发明专利技术中的混合调度模块能对不同类型的任务使用不同的策略进行调度,对实时任务采用FIFO调度器保证实时性;对普通I/O密集型进程采用I/O资源需求感知调度器并根据进程对I/O资源的需求更新调度权重,从而影响调度行为。本发明专利技术可以提升系统的I/O密集型任务的实时性和吞吐量。

【技术实现步骤摘要】
一种面向边缘I/O密集型应用的混合CPU调度方法
本专利技术涉及边缘计算和操作系统领域,特别涉及一种提升边缘I/O密集型应用实时性与吞吐量的混合CPU调度方法。
技术介绍
在真实的边缘场景中,由于边缘设备有限的存储和I/O资源,大量实时数据的处理任务呈现I/O密集型的特点。对于这类任务,主要解决的问题有两点:(1)高优先级任务的实时性保证。在边缘系统中,很多任务都对延迟敏感度较高,其最大的特点就是数据的处理和事件的响应有着严格的时间约束。操作系统应保证这些任务在运行时能完全利用系统的I/O资源从而降低时延、提升实时性。(2)依据不同任务的IO负载情况,合理分配IO资源。对于实时性要求相对宽松,延迟敏感度较低的I/O密集型任务,如边缘存储、数据转发等,它们对I/O资源的需求量各不相同,同一个任务的需求量也随时间变化而变化。因此需要动态地根据不同任务当前的I/O资源需求合理地进行调度,让I/O资源需求更大任务多占有CPU并及时处理内核缓冲区的数据,减少系统的内存压力,从而提升整个系统的吞吐量。传统调度方法无法满足上述两点需求,本专利技术通过提出一种提升边缘I/O密集型应用实时性与吞吐量的混合CPU调度方法解决上述两个问题。通用场景下的CPU调度算法主要以完全公平调度器(CFS)为代表。完全公平调度器抛弃以前固定时间片和固定调度周期的设计,而是根据进程的优先级(nice)动态分配每次运行的时间片CFS,作为通用调度算法无法满足边缘场景下重要任务实时性需求。另一方面针对I/O密集型应用,人们更关心其对I/O资源的需求和使用情况,而CFS无法对其进行有效感知,进而合理调度进程,提升应用的实时性与吞吐量。传统实时CPU调度算法有基于多优先级队列的先进先出(FIFO)算法和时间片轮转(Round-Robin)算法。对于前者来说,整个系统中有N个任务队列,分别对应0~N-1的优先级,每个新产生的任务将被置于该任务优先级对应的队列尾端,每次调度器重新调度时从高优先级队列开始遍历,选取第一个非空队列并从队头弹出任务。每个任务持续运行直到其主动放弃其时间片或被更高优先级任务抢占。时间片轮转算法总体架构与先进先出算法类似,但每个进程有个固定的时间片,当时间片用完之后,任务被重新置于队列尾端并再次调度。传统实时调度算法虽然能保证高优先级任务的实时性,但无论是FIFO还是Round-Robin,在进程时间片用完或运行完毕之前,都无法响应其它相同优先级的进程。这一方面对其它进程造成较大的响应延迟导致应用实时性的下降,另外堆积的数据无法及时处理,对内存也有不小的负担,造成整个系统的吞吐量的降低,因此无法适应边缘端的I/O密集型应用场景。
技术实现思路
根据现有调度方法不足,本专利技术实现的一种提升边缘I/O密集型应用实时性与吞吐量的混合CPU调度方法采用以下三个模块:(1)系统I/O性能度量模块该模块的功能是对当前系统的各种I/O资源进行性能度量,并根据各种I/O资源的量化参数,为进程分配默认I/O资源的消耗量。边缘计算的节点呈现异构性特点,不同的设备如树莓派、PC、智能手机都能成为计算资源而被使用。不同设备的I/O资源差异很大,因此需要以统一的压力测试模块对其进行性能度量与剖析。该模块将系统I/O资源分为存储I/O、网络I/O,并使用标准压力测试方法对其进行压力测试得到相关性能参数。(2)I/O资源需求感知模块该模块的功能是对进程的各种I/O行为实时监控,统计量化每个进程对各种I/O资源的需求并保存在进程结构体中,这些信息是调度器做出调度决策的依据。(3)混合调度模块该模块是本专利技术的核心,主要功能是对不同类型的任务使用不同的算法进行调度。整个调度模块分为FIFO调度器和I/O资源感知调度器两个子模块。FIFO调度器负责调度实时任务,I/O资源感知调度器负责调度普通进程。每个进程内部维护一个调度权重参数,该参数的大小直接决定了未来一段时间内该进程占据CPU的时间片长短。调度器内部采用大根堆管理进程调度实体,每次调度时挑选运行权重最大的进程。每次调度结束时根据进程的运行时间与对I/O资源的消耗更新其调度权重,从而使对I/O资源需求更多的进程有更大几率被调度运行,提升IO密集型任务的实时性与吞吐量。基于上述模块,该方法包括如下步骤:步骤1:使用I/O性能度量模块对系统的I/O资源进行剖析,并得到磁盘读写带宽(disk_bandwidth)、网络传输带宽(net_bandwidth)。步骤2:根据新产生的进程的优先级高低,将其绑定到对应的调度器。默认将0~100区间范围的优先级绑定至FIFO调度器,其它绑定至IO资源感知调度器。步骤3:根据目前整个系统运行进程的数量和负载,设置进程对网络、磁盘I/O资源的使用阈值(default_net_consum、default_disk_consum)。步骤4:调度运行FIFO调度器中的高优先级任务,直到所有高优先级任务运行完毕。步骤5:运行I/O资源感知调度器中的普通进程,每次选择大根堆中调度权重最大的进程。I/O资源需求感知模块会跟踪该进程的I/O行为并记录该进程对网络、磁盘资源的使用情况(cur_net_consum、cur_disk_consum)和常驻内存集(RSS)的变化。步骤6:每次进程的运行时间片到期时,根据进程的cur_net_consum、cur_disk_consum和RSS,更新进程的调度权重数值,将该进程重新插入大根堆中。步骤7:重复步骤5、6,直到所有普通进程运行完毕或者有新的高优先级任务出现。本专利技术的有益效果:本专利技术针对边缘I/O密集型的应用场景,提出一种提升边缘I/O密集型应用实时性与吞吐量的混合CPU调度算法。对于高优先级任务采用FIFO调度器,保证其优先完成,提升了任务实时性。对于普通进程,采用I/O资源感知调度器,根据进程的IO需求大小分配时间片,提升了I/O密集型任务的吞吐量。附图说明图1为模型组件结构图;图2为I/O性能度量示意图;图3为I/O资源需求感知示意图;图4为FIFO调度器示意图;图5为I/O资源感知调度器的示意图;图6为方法执行流程图。具体实施方式以下结合附图对本专利技术作进一步说明。本专利技术提出一种面向边缘端I/O密集型任务的混合CPU调度方法。它使用多队列先进先出调度算法保证边缘端高优先级的实时性。对于普通的I/O密集型任务,I/O资源感知调度器能基于进程的IO资源需求做出调度决策,尽可能多调度对I/O资源需求更多的任务,从而提升整体吞吐量。该方法使用三个组件:1)I/O性能度量模块;2)I/O资源需求感知模块3)混合调度模块。图1为本方法模型组件结构图。(1)I/O性能度量模块本专利技术的混合调度模块中的I/O资源感知调度器算法会根据不同进程对系统I/O资源的需求做出决策,决策基于两点:整个系统的I/O性能参数和该进程对I/O资源的消耗。本文档来自技高网
...

【技术保护点】
1.一种面向边缘I/O密集型应用的混合CPU调度方法,其特征在于该方法具体包括:/n步骤1:使用I/O性能度量模块对系统的I/O资源进行剖析,并得到磁盘读写带宽和网络传输带宽;/n步骤2:根据新产生的进程的优先级高低,将其绑定到对应的调度器;默认将0~100区间范围的优先级绑定至FIFO调度器,其它绑定至IO资源感知调度器;/n步骤3:根据目前整个系统运行进程的数量和负载,设置进程对网络I/O资源的使用阈值和磁盘I/O资源的使用阈值;/n步骤4:调度运行FIFO调度器中的高优先级任务,直到所有高优先级任务运行完毕;/n步骤5:运行I/O资源感知调度器中的普通进程,每次选择大根堆中调度权重最大的进程;I/O资源需求感知模块跟踪进程的I/O行为并记录该进程对网络和磁盘资源的使用情况以及常驻内存集的变化;/n步骤6:每次进程的运行时间片到期时,根据进程对网络和磁盘资源的使用情况以及常驻内存集的变化,更新进程的调度权重数值,将该进程重新插入大根堆中;/n步骤7:重复步骤5、6,直到所有普通进程运行完毕或者有新的高优先级任务出现。/n

【技术特征摘要】
1.一种面向边缘I/O密集型应用的混合CPU调度方法,其特征在于该方法具体包括:
步骤1:使用I/O性能度量模块对系统的I/O资源进行剖析,并得到磁盘读写带宽和网络传输带宽;
步骤2:根据新产生的进程的优先级高低,将其绑定到对应的调度器;默认将0~100区间范围的优先级绑定至FIFO调度器,其它绑定至IO资源感知调度器;
步骤3:根据目前整个系统运行进程的数量和负载,设置进程对网络I/O资源的使用阈值和磁盘I/O资源的使用阈值;
步骤4:调度运行FIFO调度器中的高优先级任务,直到所有高优先级任务运行完毕;
步骤5:运行I/O资源感知调度器中的普通进程,每次选择大根堆中调度权重最大的进程;I/O资源需求感知模块跟踪进程的I/O行为并记录该进程对网络和磁盘资源的使用情况以及常驻内存集的变化;
步骤6:每次进程的运行时间片到期时,根据进程对网络和磁盘资源的使用情况以及常驻内存集的变化,更新进程的调度权重数值,将该进程重新插入大根堆中;
步骤7:重复步骤5、6,直到所有普通进程运行完毕或者有新的高优先级任务出现。


2.根据权利要求1所述的一种面向边缘I/O密集型应用的混合CPU调度方法,其特征在于:所述的I/O性能度量模块能够对当前系统的各种I/O资源进行性能度量,并根据各种I/O资源的量化参数,为进程分配默认I/O资源的消耗量,该模块将系统I/O资...

【专利技术属性】
技术研发人员:贾刚勇周俶易乐柯磊李佳伟洪陈杰蒋从锋
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1