一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

IO任务处理方法、装置和计算机设备和存储介质与流程

2021-11-25 02:58:00 来源:中国专利 TAG:

io任务处理方法、装置和计算机设备和存储介质
技术领域
1.本技术涉及存储技术领域,特别是涉及一种io任务处理方法、装置、计算机设备和存储介质。


背景技术:

2.主机向磁盘读出或写入数据块时,会不断下发io请求,最简单的处理方法就是依次单独执行这些io请求,但这种方法处理效率较低。如果先根据读/写磁盘的位置信息,将读/写位置相邻的io请求进行合并,然后再向磁盘进行读/写,则可以在一定程度上提高处理效率。
3.目前,已存在一些关于io合并的方法,但这些方法主要聚焦于如何合并io,却忽略了io合并的时间。需要说明的一点是,io合并时间不是越长越好。因为开启io合并后,主机需要等待io合并完成后,才可以向磁盘进行读写。有时,过长的io合并时间反而会降低io处理效率。由此可见,io合并时间的选取是一个急需解决的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够io任务处理方法、装置、计算机设备和存储介质。
5.一方面,提供一种io任务处理方法,所述方法包括:s1,接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;s2,继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;s3,根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
6.在其中一个实施例中,步骤s1还包括:计算依次单独执行io任务时的耗费时间方差,并根据所述方差确定处理不同io任务所耗费的时间是否稳定;若稳定,则执行步骤s2;若不稳定,则继续保持依次单独执行io任务。
7.在其中一个实施例中,所述根据所述依次单独执行时处理单个io所耗费时间的第一均值确定io合并时间,包括:获取合并io任务的初始化合并时间;统计处理合并io任务时所耗费的总时间,所述处理合并io任务包括对合并的io任务及剩余未合并io任务进行读/写处理;计算合并io任务时处理每个io所耗费时间的第二均值;根据所述依次单独执行时处理单个io所耗费时间的第一均值以及所述合并io任务时处理每个io所耗费时间的第二均值,计算合并io任务时的效率提升值;若效率提升值大于0,则将所述初始化合并时间作为最佳io合并时间。
8.在其中一个实施例中,计算合并io任务时处理每个io所耗费时间的第二均值,包括:其中μ2为合并io任务时处理每个io所耗费时间的第二均值,χ
t
为合并时间,t为处理合并io任务时所耗费的总时间,n为合并的io任务及剩余未合并io任务的总任务数。
9.在其中一个实施例中,所述计算合并io任务时的效率提升值,包括:η为效率提升值,μ1为依次单独执行时处理单个io所耗费时间的第一均值,μ2为合并io任务时处理每个io所耗费时间的第二均值。
10.在其中一个实施例中,所述根据所述依次单独执行时处理单个io所耗费时间的第一均值确定io合并时间,还包括:多次调整合并io任务的合并时间,并计算调整后的多个效率提升值,将最大效率提升值对应的合并时间作为最佳io合并时间。
11.在其中一个实施例中,所述调整合并io任务的合并时间,包括:其中,χ
t
为合并时间,η为效率提升值。
12.另一方面,提供了一种io任务处理装置,所述装置包括单独执行模块、优化模块、优化后处理模块,其中:单独执行模块,用于接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;优化模块,用于继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;优化后处理模块,用于根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
13.再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:s1,接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;s2,继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;s3,根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
14.又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:s1,接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;s2,继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行
时处理单个io所耗费时间的第一均值确定最佳io合并时间;s3,根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
15.上述io任务处理方法、装置、计算机设备和存储介质,首先,不开启io合并,接收主机下发的多个io请求并依次执行,统计处理单个io所耗费时间的均值及方差;其次,采用启发式的方法来迭代优化io合并时间,在每一次迭代优化过程中,计算出当前io合并时间所对应的效率提升值,根据效率提升的情况去修改io合并时间。重复这个过程,直到满足停止条件;最后,采用上一步得到的io合并时间,继续执行剩余io任务。通过进行io合并,可以有效提高主机的io读写效率,从而节省系统资源。
附图说明
16.图1为一个实施例中io任务处理方法的流程示意图;图2为一个实施例中单独执行阶段的流程示意图;图3为一个实施例中优化阶段的流程示意图;图4为一个实施例中优化后处理阶段的流程示意图;图5为一个实施例中io任务处理装置的结构框图;图6为一个实施例中计算机设备的内部结构图。
具体实施方式
17.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
18.本技术提供的io任务处理方法,如图1所示,该方法包括以下步骤:s1,接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;s2,继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;s3,根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
19.本技术的方法主要包含三个阶段,第一个阶段不开启io合并,分析处理单个io的效率;第二阶段通过启发式学习的方法优化io合并时间,第三阶段采用第二阶段得到的io合并时间,继续处理主机下发的io请求。
20.上述io任务处理方法中,通过进行io合并,可以有效提高主机的io读写效率,从而节省系统资源。
21.在其中一个实施例中,步骤s1还包括:计算依次单独执行io任务时的耗费时间方差,并根据所述方差确定处理不同io任务所耗费的时间是否稳定;若稳定,则执行步骤s2;若不稳定,则继续保持依次单独执行io任务。
22.具体的,如图2所示,第一阶段,在不开启io合并的情况下,接收主机下发的多个io,并分别对io进行处理。然后统计处理每个io所耗费时间的均值μ1及方差σ2。
23.通过方差来分析处理不同io所耗费的时间是否稳定,若不稳定,则继续保持io合
并不开启;若方差稳定,则输出单个io所耗费的时间均值μ1,并进入第二阶段。
24.在其中一个实施例中,所述根据所述依次单独执行时处理单个io所耗费时间的第一均值确定io合并时间,包括:获取合并io任务的初始化合并时间;统计处理合并io任务时所耗费的总时间,所述处理合并io任务包括对合并的io任务及剩余未合并io任务进行读/写处理;计算合并io任务时处理每个io所耗费时间的第二均值;根据所述依次单独执行时处理单个io所耗费时间的第一均值以及所述合并io任务时处理每个io所耗费时间的第二均值,计算合并io任务时的效率提升值;若效率提升值大于0,则将所述初始化合并时间作为最佳io合并时间。
25.在其中一个实施例中,计算合并io任务时处理每个io所耗费时间的第二均值,包括:其中μ2为合并io任务时处理每个io所耗费时间的第二均值,χ
t
为合并时间,t为处理合并io任务时所耗费的总时间,n为合并的io任务及剩余未合并io任务的总任务数。
26.在其中一个实施例中,所述计算合并io任务时的效率提升值,包括:η为效率提升值,μ1为依次单独执行时处理单个io所耗费时间的第一均值,μ2为合并io任务时处理每个io所耗费时间的第二均值。
27.在其中一个实施例中,所述根据所述依次单独执行时处理单个io所耗费时间的第一均值确定io合并时间,还包括:多次调整合并io任务的合并时间,并计算调整后的多个效率提升值,将最大效率提升值对应的合并时间作为最佳io合并时间。
28.在其中一个实施例中,所述调整合并io任务的合并时间,包括:其中,χ
t
为合并时间,η为效率提升值。
29.具体的,如图3所示,第二阶段,包含以下几个步骤:s21.输入第一阶段所得均值μ1,初始化io合并时间χ
t
=0.1s,初始化空集合s,初始化最大优化次数n=100,初始化当前迭代次数i=1;s22.接收主机下发的多个io(io1,io2,

,io
n
),开启io合并,在io合并时间χ
t
内,对io进行合并;s23.io合并结束后,对合并的io及剩余未合并io进行读/写处理,并统计所耗费的总时间t;s24.计算开启io合并后,处理每个io所耗费时间的均值:;
s25.统计开启io合并后,处理io的效率提升:;s26.存档:将当前的io合并时间 χ
t
和对应的效率提升η存入集合s中;s27.调整io合并时间:s28.调整当前迭代次数: i=i 1s29.判断i是否大于最大优化次数n:如果i≤n,则返回第2步,继续优化io合并时间;如果i>n,则从集合s中选出效率提升最大的 η(记为η
best
)及其对应的io合并时间χ
t
;s2a.如果η
best
≤0,则令io合并时间χ
t =0,否则,保持不变;s2b.输出优化后的io合并时间χ
t
,并进入第三阶段。
30.如图4所示,第三阶段,包括以下几个步骤:s31.设置io合并时间为第二阶段输出的io合并时间x_t;s32.接收主机下发的多个io请求,在时间χ
t
内对io进行合并;s33.io合并时间结束后,对合并的io及剩余未合并io进行读/写处理;s34.重复该阶段的步骤s32,s33,直到主机不再下发io请求。
31.应该理解的是,虽然图1

4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1

4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
32.通过启发式学习的方式优化io合并时间,从而能够根据所处理的io任务自适应的确定最佳的io合并时间,避免io合并时间过长或过短而影响io处理效率。
33.在一个实施例中,如图5所示,提供了一种io任务处理装置,包括单独执行模块、优化模块、优化后处理模块,其中:单独执行模块,用于接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;优化模块,用于继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;优化后处理模块,用于根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
34.在其中一个实施例中,单独执行模块还用于计算依次单独执行io任务时的耗费时间方差,并根据所述方差确定处理不同io任务所耗费的时间是否稳定。
35.在其中一个实施例中,优化模块用于:获取合并io任务的初始化合并时间;
统计处理合并io任务时所耗费的总时间,所述处理合并io任务包括对合并的io任务及剩余未合并io任务进行读/写处理;计算合并io任务时处理每个io所耗费时间的第二均值;根据所述依次单独执行时处理单个io所耗费时间的第一均值以及所述合并io任务时处理每个io所耗费时间的第二均值,计算合并io任务时的效率提升值;若效率提升值大于0,则将所述初始化合并时间作为最佳io合并时间。
36.在其中一个实施例中,优化模块中计算合并io任务时处理每个io所耗费时间的第二均值,包括:其中μ2为合并io任务时处理每个io所耗费时间的第二均值,χ
t
为合并时间,t为处理合并io任务时所耗费的总时间,n为合并的io任务及剩余未合并io任务的总任务数。
37.在其中一个实施例中,优化模块中计算合并io任务时的效率提升值,包括:η为效率提升值,μ1为依次单独执行时处理单个io所耗费时间的第一均值,μ2为合并io任务时处理每个io所耗费时间的第二均值。
38.在其中一个实施例中,优化模块中根据所述依次单独执行时处理单个io所耗费时间的第一均值确定io合并时间,还包括:多次调整合并io任务的合并时间,并计算调整后的多个效率提升值,将最大效率提升值对应的合并时间作为最佳io合并时间。
39.在其中一个实施例中,优化模块中调整合并io任务的合并时间,包括:其中,χ
t
为合并时间,η为效率提升值。
40.关于io任务处理装置的具体限定可以参见上文中对于io任务处理方法的限定,在此不再赘述。上述io任务处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
41.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种io任务处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
42.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结
构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
43.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:s1,接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;s2,继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;s3,根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
44.在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算依次单独执行io任务时的耗费时间方差,并根据所述方差确定处理不同io任务所耗费的时间是否稳定;若稳定,则执行步骤s2;若不稳定,则继续保持依次单独执行io任务。
45.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取合并io任务的初始化合并时间;统计处理合并io任务时所耗费的总时间,所述处理合并io任务包括对合并的io任务及剩余未合并io任务进行读/写处理;计算合并io任务时处理每个io所耗费时间的第二均值;根据所述依次单独执行时处理单个io所耗费时间的第一均值以及所述合并io任务时处理每个io所耗费时间的第二均值,计算合并io任务时的效率提升值;若效率提升值大于0,则将所述初始化合并时间作为最佳io合并时间。
46.在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算合并io任务时处理每个io所耗费时间的第二均值,包括:其中μ2为合并io任务时处理每个io所耗费时间的第二均值,χ
t
为合并时间,t为处理合并io任务时所耗费的总时间,n为合并的io任务及剩余未合并io任务的总任务数。
47.在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算合并io任务时的效率提升值,包括:η为效率提升值,μ1为依次单独执行时处理单个io所耗费时间的第一均值,μ2为合并io任务时处理每个io所耗费时间的第二均值。
48.在一个实施例中,处理器执行计算机程序时还实现以下步骤:多次调整合并io任务的合并时间,并计算调整后的多个效率提升值,将最大效率提升值对应的合并时间作为最佳io合并时间。
49.在一个实施例中,处理器执行计算机程序时还实现以下步骤:调整合并io任务的合并时间,包括:
其中,χ
t
为合并时间,η为效率提升值。
50.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:s1,接收主机下发的多个io任务并依次单独执行,统计依次单独执行时处理单个io所耗费时间的第一均值;s2,继续接收主机下发的多个io任务并合并io任务执行,根据所述依次单独执行时处理单个io所耗费时间的第一均值确定最佳io合并时间;s3,根据所述最佳io合并时间,继续执行主机下发的剩余io任务。
51.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:计算依次单独执行io任务时的耗费时间方差,并根据所述方差确定处理不同io任务所耗费的时间是否稳定;若稳定,则执行步骤s2;若不稳定,则继续保持依次单独执行io任务。
52.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取合并io任务的初始化合并时间;统计处理合并io任务时所耗费的总时间,所述处理合并io任务包括对合并的io任务及剩余未合并io任务进行读/写处理;计算合并io任务时处理每个io所耗费时间的第二均值;根据所述依次单独执行时处理单个io所耗费时间的第一均值以及所述合并io任务时处理每个io所耗费时间的第二均值,计算合并io任务时的效率提升值;若效率提升值大于0,则将所述初始化合并时间作为最佳io合并时间。
53.在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算合并io任务时处理每个io所耗费时间的第二均值,包括:其中μ2为合并io任务时处理每个io所耗费时间的第二均值,χ
t
为合并时间,t为处理合并io任务时所耗费的总时间,n为合并的io任务及剩余未合并io任务的总任务数。
54.在一个实施例中,处理器执行计算机程序时还实现以下步骤:计算合并io任务时的效率提升值,包括:η为效率提升值,μ1为依次单独执行时处理单个io所耗费时间的第一均值,μ2为合并io任务时处理每个io所耗费时间的第二均值。
55.在一个实施例中,处理器执行计算机程序时还实现以下步骤:多次调整合并io任务的合并时间,并计算调整后的多个效率提升值,将最大效率提升值对应的合并时间作为最佳io合并时间。
56.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
调整合并io任务的合并时间,包括:其中,χ
t
为合并时间,η为效率提升值。
57.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
58.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
59.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献