CN117251275A - 多应用异步i/o请求的调度方法及系统、设备及介质 - Google Patents

多应用异步i/o请求的调度方法及系统、设备及介质 Download PDF

Info

Publication number
CN117251275A
CN117251275A CN202311532811.1A CN202311532811A CN117251275A CN 117251275 A CN117251275 A CN 117251275A CN 202311532811 A CN202311532811 A CN 202311532811A CN 117251275 A CN117251275 A CN 117251275A
Authority
CN
China
Prior art keywords
request
application program
application
information
storage system
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.)
Granted
Application number
CN202311532811.1A
Other languages
English (en)
Other versions
CN117251275B (zh
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.)
Beijing Carpura Technology Co ltd
Original Assignee
Beijing Carpura Technology 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 Beijing Carpura Technology Co ltd filed Critical Beijing Carpura Technology Co ltd
Priority to CN202311532811.1A priority Critical patent/CN117251275B/zh
Publication of CN117251275A publication Critical patent/CN117251275A/zh
Application granted granted Critical
Publication of CN117251275B publication Critical patent/CN117251275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种多应用异步I/O请求的调度方法及系统、设备及介质,涉及计算机技术领域。包括:一个应用程序响应于针对I/O请求的一条提交命令,将提交命令对应的若干条第一I/O请求发送至并行存储系统;并行存储系统响应于来自一个应用程序发送的若干条第一I/O请求,并存放至I/O请求池中;并行存储系统响应于执行I/O请求的命令,从I/O请求池中所有I/O请求对应的所有应用程序中,确定各个应用程序的I/O特征信息,并根据设定的I/O调度方式和各个应用程序的I/O特征信息,选择一个目标应用程序,执行目标应用程序的一个I/O请求。本发明可提高并行应用程序的I/O性能,降低I/O开销对程序运行速度的影响。

Description

多应用异步I/O请求的调度方法及系统、设备及介质
技术领域
本发明涉及计算机技术领域,具体涉及一种多应用异步I/O请求的调度方法及系统、设备及介质。
背景技术
随着科技的发展和人们生活水平的提高,应用程序的计算量不断提高,很多程序成为能利用多个处理器核来加速计算的MPI并行程序,并运行在具有很多处理器核的高性能计算机或超级计算机上。超级计算机集中大规模计算资源,通常拥有大量处理器核,例如数十万甚至上千万处理器核。一个应用程序往往难以持续性占有整个超级计算机的所有处理器核,因此一台超级计算机往往会被多个用户同时使用,并同时运行多个应用程序。尽管一台超级计算机上同时运行的多个并行程序会使用不同处理器核,但这些应用程序往往会共享使用同一套并行存储服务系统,而这样的共享使用可能会导致对并行存储的资源竞争,甚至使存储开销成为整个超级计算机的性能瓶颈。因此,需要提高并行应用程序的I/O性能,降低I/O开销对程序运行速度的影响。
提高I/O性能、降低I/O开销至少可以从两个层级进行。第一个层级是在一个并行应用程序的内部进行,应用程序利用计算机系统或中间件所提供的并行I/O库与应用程序接口,实现对数据的并行读写,从而提高读写的速度;此外,还有些系统提供了异步I/O或异步并行I/O的功能与接口,使得应用程序的计算过程能与数据的读写过程重叠进行,从而进一步降低读写开销对程序运行速度的影响。第二个层级是在多个应用程序之间及其与并行存储系统之间进行。同时运行的多个应用程序会竞争使用并行存储资源,而剧烈的资源竞争可能会导致I/O效率的急剧下降。良好的I/O请求调度方法,可以减少资源竞争情况下程序运行速度的变慢、避免卡死等。
当前已有工作中,大部分主要针对第一个层级,尤其是针对异步I/O功能。在同步I/O系统中,一个应用程序只有在完成上一个I/O请求后,才能发起下一个I/O请求。而在异步I/O系统中,可以在应用程序级用队列缓存多个异步I/O请求,并在某个时刻,将多个I/O请求提交给并行存储系统。这种基于队列的缓存方式为第二个层级的优化提供了新的空间。
发明内容
有鉴于此,本申请实施例提供一种多应用异步I/O请求的调度方法及系统、设备及介质,以提高并行应用程序的I/O性能,降低I/O开销对程序运行速度的影响。
本申请实施例提供以下技术方案:一种多应用异步I/O请求的调度方法,包括:
一个应用程序响应于针对I/O请求的一条提交命令,将所述提交命令对应的若干条第一I/O请求信息发送至并行存储系统;
所述并行存储系统响应于来自一个应用程序发送的若干条所述第一I/O请求信息,将若干条所述第一I/O请求信息存放至I/O请求池中;
所述并行存储系统响应于执行I/O请求的命令,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
根据本申请一种实施例,各个所述应用程序的I/O特征信息,包括以下多种I/O性能数据信息中的一种或多种:
I/O资源占用率,I/O等待耗时,I/O等待耗时占应用程序运行时间的比例,I/O访问耗时,I/O访问耗时占应用程序运行时间的比例,I/O等待耗时与I/O访问耗时的比值,I/O请求访问的速度或效率,I/O访问的数据量,应用程序与并行存储系统之间进行通信的带宽,应用程序的优先级,I/O请求到达并行存储系统的先后顺序。
根据本申请一种实施例,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,其中:所述设定的I/O调度方式包括在所述I/O特征信息中所选用的一种或多种所述I/O性能数据信息,以及设定的根据所选用的一种或多种所述I/O性能数据信息,选择所述目标应用程序的目标确定方法;
其中,所述目标确定方法为顺序筛选法或综合加权法中的一种。
根据本申请一种实施例,所述I/O资源占用率的确定方法,包括:所述I/O资源占用率按照应用程序的I/O访问耗时来计算,或按照应用程序的每个计算资源单元的平均I/O访问耗时来计算。
根据本申请一种实施例,所述I/O访问的数据量的确定方法,包括:所述I/O访问的数据量按照应用程序的I/O访问的数据量来计算,或按照应用程序的每个计算资源单元的平均I/O访问的数据量来计算。
根据本申请一种实施例,所述I/O性能数据信息的确定方法,包括:一种所述I/O性能数据信息为应用程序启动以来的累积量,或为一个时间片内的累积量,其中时间片的长短为设定的系统阈值。
根据本申请一种实施例,还包括:
一个应用程序响应于针对I/O请求的一条提交命令,确定所述提交命令对应的若干条第一I/O请求信息,将若干条所述第一I/O请求信息进行合并处理后获得若干条第一I/O请求集信息,将所述第一I/O请求集信息发送至并行存储系统;其中,若所述提交命令对应的所述第一I/O请求信息的数量为多条,则将I/O请求对应数据量小于设定阈值的所述第一I/O请求信息进行合并,得到所述第一I/O请求集信息;
所述并行存储系统响应于来自一个应用程序发送的所述第一I/O请求集信息,对所述第一I/O请求集信息进行解析,获得若干条所述第一I/O请求信息,获取该应用程序的运行特征信息,将若干条所述第一I/O请求信息存放至I/O请求池中。
本申请还提供一种多应用异步I/O请求的调度系统,包括:
第一响应模块,用于一个应用程序响应于针对I/O请求的一条提交命令,将所述提交命令对应的若干条第一I/O请求信息发送至并行存储系统;
第二响应模块,用于所述并行存储系统响应于来自一个应用程序发送的若干条所述第一I/O请求信息,将若干条所述第一I/O请求信息存放至I/O请求池中;
执行模块,用于所述并行存储系统响应于执行I/O请求的命令,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的多应用异步I/O请求的调度方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述的多应用异步I/O请求的调度方法的计算机程序。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明实施例提供一种多应用共享异步I/O请求的调度方法,从而提高并行应用程序的I/O性能,降低I/O开销对程序运行速度的影响,解决同时运行的多个应用程序竞争使用并行存储资源,导致I/O效率的急剧下降,及大多数应用程序的运行速度变慢的问题,避免了程序运行的卡死、系统的崩溃等情况。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的多应用异步I/O请求的调度方法流程示意图;
图2是本发明实施例的多应用异步I/O请求的调度系统的结构示意图;
图3是本发明计算机设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,本发明实施例提供了一种多应用异步I/O请求的调度方法,包括:
S101.一个应用程序响应于针对I/O请求的一条提交命令,将所述提交命令对应的若干条第一I/O请求信息发送至并行存储系统;
S102.所述并行存储系统响应于来自一个应用程序发送的若干条所述第一I/O请求信息,将若干条所述第一I/O请求信息存放至I/O请求池中;
S103.所述并行存储系统响应于执行I/O请求的命令,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
具体实施时,步骤S101中,无论是同步I/O库还是异步I/O库,应用程序都会发起针对I/O请求的提交命令。对于同步I/O库,一条提交命令通常只对应着一个I/O请求,即一个读请求或者一个写请求。对于异步I/O库,一条提交命令则可以包含一条或多条I/O请求;其中,多条I/O请求既可以包括读请求,也可以包括写请求,既可以对应着同一个数据文件,也可以对应着多个数据文件。此外,异步I/O库既会有发起异步I/O请求的指令,也会有等待异步I/O请求完成的指令。因此,上述针对I/O请求的一条提交命令可以是:发起一条同步I/O请求的指令、发起若干条异步I/O请求的指令、等待若干条异步I/O请求完成的指令。所述“确定所述提交命令所对应的若干条第一I/O请求信息”,即是从指令中提取出所包含的一条或多条I/O请求信息。
在一种实施例中,一个应用程序响应于针对I/O请求的一条提交命令,确定所述提交命令对应的若干条第一I/O请求信息,将若干条所述第一I/O请求信息进行合并处理后获得若干条第一I/O请求集信息,将所述第一I/O请求集信息发送至并行存储系统;其中,若所述提交命令对应的所述第一I/O请求信息的数量为多条,则将I/O请求对应数据量小于设定阈值的所述第一I/O请求信息进行合并,得到所述第一I/O请求集信息;
所述并行存储系统响应于来自一个应用程序发送的所述第一I/O请求集信息,对所述第一I/O请求集信息进行解析,获得若干条所述第一I/O请求信息,获取该应用程序的运行特征信息,将若干条所述第一I/O请求信息存放至I/O请求池中。
具体实施时,当所述提交命令只对应着一条I/O请求信息(即所述第一I/O请求信息)时,得到的所述第一I/O请求集信息只有一条。有多条所述第一I/O请求信息时,本实施例需要考虑如何将这些I/O请求信息进行合并。一般说来,需要把对应数据量小的多条所述第一I/O请求信息(主要是写请求;读请求不需要从应用程序到并行存储系统发送数据,即对应的数据量很小)合并为一条所述第一I/O请求集信息,以增加I/O请求信息从应用程序发送到并行存储系统的网络通信带宽,从而减少不同应用程序间对网络资源的竞争。当一条所述第一I/O请求信息对应的数据量很大而能充分利用网络带宽时,它可以单独成为一条I/O请求集信息。因此,若干条所述第一I/O请求信息可以被合并为一条或多条所述第一I/O请求集信息。
本步骤中,将所述第一I/O请求集信息发送至并行存储系统,即将各条所述第一I/O请求集信息,基于网络通信(如MPI通信),发送给并行存储系统。在通信过程中记录通信的数据量、通信所花的时间和通信的带宽或效率。
具体实施时,步骤S102中,所述并行存储系统响应于来自一个应用程序发送的所述第一I/O请求集信息,对所述第一I/O请求集信息进行解析,获得若干条所述第一I/O请求信息,即是在并行存储系统通过网络通信获取到一条第一I/O请求集信息后,从中解析出若干条第一I/O请求信息。
具体实施时,获取该应用程序的运行特征信息的过程中,应用程序的运行特征信息可以包括以下多种信息中的一个或多个:应用程序对并行资源的占用情况(例如相应作业所占用的处理器核数或计算节点数),应用程序或所属用户(或所属队列)的优先级,I/O等待的耗时及其占应用程序运行时间的比例,I/O访问的耗时及其占该程序运行时间的比例,I/O访问的速度或效率,应用程序与并行存储系统之间进行通信的耗时及其占应用程序运行时间的比例,应用程序与并行存储系统之间进行通信的速度或带宽,I/O访问的数据量。上述运行特征信息通常是一定时间内的统计量,例如在一个时间片内(时间片的长短可以是本实施例的系统阈值)的累积量,或从应用程序启动以来的累积量。其中,I/O等待的耗时来源于并行存储系统在收到一个I/O请求到调度并开始执行该I/O请求之间的时间间隔;I/O访问的耗时来源于并行存储系统在开始执行一个I/O请求(通常包括数据读和写请求,以及文件打开和关闭请求;可以不包括异步I/O中的等待完成请求,因为该请求会对应于多个读/写请求)到完成该I/O请求之间的时间间隔;I/O访问的速度或效率,主要量化为文件数据读/写的平均带宽,可通过读/写的数据总量与I/O访问总耗时(包括读写请求和文件打开关闭的总耗时)的比值来量化。
本实施例中,获取该应用程序的运行特征信息,将若干条所述第一I/O请求信息存放至I/O请求池中,还包括:将若干条所述第一I/O请求信息与该应用程序的运行特征信息进行关联,并记录当前的时间信息,以使得后续可以获得I/O等待耗时等信息。
具体实施时,步骤S103中,并行存储系统响应于执行I/O请求的命令,该命令是并行存储系统自身发起的,即在并行存储系统完成I/O请求的处理后、有了空闲资源就会启动执行I/O请求的命令。
在一种实施例中,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
其中,所述设定的I/O调度方式包括在所述I/O特征信息中所选用的一种或多种所述I/O性能数据信息,以及设定的根据所选用的一种或多种所述I/O性能数据信息,选择所述目标应用程序的目标确定方法。
所述目标确定方法为顺序筛选法或综合加权法中的一种。其中,对于顺序筛选法,I/O调度方式会制定所选用多种I/O性能数据信息之间的先后顺序;然后依次考察各种I/O性能数据信息。其中在考察当前I/O性能数据信息时,从当前的若干输入候选应用程序中选出若干输出候选应用程序,把它们作为考察下一种I/O性能数据信息时的输入候选应用程序,直至选出目标应用程序。对于综合加权法,多种I/O性能数据信息之间没有先后顺序但有权重的差别,对于每一个I/O性能数据信息,确定各应用程序的分值,然后按照多种I/O性能数据信息之间的预设权重,求出各应用程序的总分,把总分最大的应用程序确定为目标应用程序。
各个所述应用程序的I/O特征信息,包括以下多种I/O性能数据信息中的一种或多种:I/O资源占用率,I/O等待耗时,I/O等待耗时占应用程序运行时间的比例,I/O访问耗时,I/O访问耗时占应用程序运行时间的比例,I/O等待耗时与I/O访问耗时的比值,I/O请求访问的速度或效率,I/O访问的数据量,应用程序与并行存储系统之间进行通信的带宽,应用程序的优先级,I/O请求到达并行存储系统的先后顺序。
在一个实施例中,所述I/O性能数据信息的确定方法,包括:一种所述I/O性能数据信息为应用程序启动以来的累积量,或为一个时间片内的累积量,其中时间片的长短为设定的系统阈值。
具体实施时,I/O调度方式通常由并行存储系统及超级计算机的管理员设定。I/O调度方式用于指导从I/O请求池中如何选出即将处理执行的一个I/O请求。一般说来,I/O调度方式涉及到两个层级,第一个层级是从I/O请求池所有I/O请求对应的所有应用程序中选出一个应用程序,第二个层级是从被选中的应用程序中选出一个I/O请求。对于第二个层级,当一个应用程序在I/O请求池中有多个I/O请求时,调度过程通常可以选择最早提交的那个I/O请求,或者让读请求早于写请求执行。
对于第一个层级,本实施例可通过以下多种方法确定应用程序的优先级:
(1)计算每个所述应用程序的I/O资源占用率,选择I/O资源占用率最低的应用程序作为所述目标应用程序。
根据I/O资源占用情况选出应用程序。例如I/O资源占用越少的应用程序的优先级越高。I/O资源占用率可以用单位时间片内的I/O访问耗时来计算,也可以按照单位时间片内每计算资源单元(一般是处理器核)的平均I/O访问耗时计算。例如,有两个应用程序分别用5000核和1000核进行并行计算,在一个10秒的时间片内,两个应用程序的I/O访问耗时分别是0.5秒和0.2秒,则平均每核的耗时为0.0001秒和0.0002秒。当前超级计算机的收费模式主要是按照处理器核时数进行收费(例如1核时的费用为0.05元),对I/O访问的用量并不收费。这可能使得仅使用少量几个核但进行大量数据读写的应用程序让使用大量处理器核的应用程序变得很慢,造成处理器资源的浪费和用户体验变差;考虑平均每核I/O访问耗时的调度方式能缓解这种情况。I/O访问耗时可以通过测量的方式得到:并行存储系统在开始执行一条I/O请求时到执行完这条I/O请求之间所经过的时间被记为I/O访问耗时。I/O访问耗时比I/O数据量和I/O访问速度等更能反映对I/O资源的占用。
(2)计算每个所述应用程序中I/O等待的耗时及该耗时请求占应用程序运行时间的比例,选择I/O等待耗时最长或等待耗时占应用程序运行时间的比例最高的应用程序作为所述目标应用程序。例如,I/O等待耗时越长或占比越高的应用程序越优先,以避免有些应用程序的I/O请求一直得不到服务而造成很大影响。I/O等待耗时可以通过测量的方式得到:并行存储系统在收到一条I/O请求到开始执行这条I/O请求之间所经过的时间被记为I/O等待耗时。
(3)计算每个所述应用程序中I/O请求访问的速度或效率,选择速度或效率最高的应用程序作为所述目标应用程序。例如,速度或效率越高的应用程序的优先级越高,这样能让并行存储系统更加有效的工作,避免低I/O效率的应用程序拖慢其他应用程序,甚至造成系统崩溃。
(4)计算每个所述应用程序中I/O请求访问的数据量,选择数据量最小的应用程序作为所述目标应用程序。例如,I/O访问的数据量越小的应用程序越优先。I/O访问数据量大的应用程序导致存储系统故障(例如硬盘损坏)的概率更高。所述I/O访问的数据量按照应用程序的I/O访问的数据量来计算,或按照应用程序的每个计算资源单元的平均I/O访问的数据量来计算。
在其它实施例中,还可通过以下几种方法确定应用程序的优先级:
(5)根据I/O请求到达并行存储系统的先后顺序选出目标应用程序。例如I/O请求到达越早的应用程序的优先级越高。
(6)根据自身或所属用户(或所属队列)的优先级选出目标应用程序。在超级计算机上,可能存在一些权限更高的用户或应用程序,例如包了部分节点的用户(在不使用机器及网络和I/O访问时也会被收费),以及一些紧急的计算任务或数据处理任务。
(7)根据I/O访问占该程序运行时间比例,来选出目标应用程序。例如,占比越低的应用程序的优先级越高,这样能让给并行存储系统所带来压力小的应用程序更高优先。
(8)根据并行存储系统之间进行通信的速度或带宽,来选出目标应用程序。例如,速度或带宽越高的应用程序的优先级越高,这样能尽量较少I/O过程对高性能计算机网络通信性能的影响。
上述优先级方法既可以独立使用,也能按照先后顺序或者加权评分的方式联合使用。
在一种实施例中,执行所述目标应用程序的一个I/O请求,还包括:确定所述I/O请求等待的耗时、I/O请求访问的耗时、I/O请求访问的数据量、I/O请求访问的速度或效率,更新所述目标应用程序的运行特征信息。另外,在完成同一个应用程序同一批次的多个异步读请求后,需要将读入的数据返回给应用程序,此时可以将多个读请求合并为一个通信过程,以提高通信的数据量和带宽与效率。
如图2所示,本申请还提供一种多应用异步I/O请求的调度系统200,包括:
第一响应模块201,用于一个应用程序响应于针对I/O请求的一条提交命令,将所述提交命令对应的若干条第一I/O请求信息发送至并行存储系统;
第二响应模块202,用于所述并行存储系统响应于来自一个应用程序发送的若干条所述第一I/O请求信息,将若干条所述第一I/O请求信息存放至I/O请求池中;
执行模块203,用于所述并行存储系统响应于执行I/O请求的命令,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
在一种实施例中,提供了一种计算机设备,如图3所示,包括存储器301、处理器302及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的多应用异步I/O请求的调度方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的多应用异步I/O请求的调度方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种多应用异步I/O请求的调度方法,其特征在于,包括:
一个应用程序响应于针对I/O请求的一条提交命令,将所述提交命令对应的若干条第一I/O请求信息发送至并行存储系统;
所述并行存储系统响应于来自一个应用程序发送的若干条所述第一I/O请求信息,将若干条所述第一I/O请求信息存放至I/O请求池中;
所述并行存储系统响应于执行I/O请求的命令,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
2.根据权利要求1所述的多应用异步I/O请求的调度方法,其特征在于,各个所述应用程序的I/O特征信息,包括以下多种I/O性能数据信息中的一种或多种:
I/O资源占用率,I/O等待耗时,I/O等待耗时占应用程序运行时间的比例,I/O访问耗时,I/O访问耗时占应用程序运行时间的比例,I/O等待耗时与I/O访问耗时的比值,I/O请求访问的速度或效率,I/O访问的数据量,应用程序与并行存储系统之间进行通信的带宽,应用程序的优先级,I/O请求到达并行存储系统的先后顺序。
3.根据权利要求2所述的多应用异步I/O请求的调度方法,其特征在于,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,其中:
所述设定的I/O调度方式包括在所述I/O特征信息中所选用的一种或多种所述I/O性能数据信息,以及设定的根据所选用的一种或多种所述I/O性能数据信息,选择所述目标应用程序的目标确定方法;
其中,所述目标确定方法为顺序筛选法或综合加权法中的一种。
4.根据权利要求2所述的多应用异步I/O请求的调度方法,其特征在于,所述I/O资源占用率的确定方法,包括:
所述I/O资源占用率按照应用程序的I/O访问耗时来计算,或按照应用程序的每个计算资源单元的平均I/O访问耗时来计算。
5.根据权利要求2所述的多应用异步I/O请求的调度方法,其特征在于,所述I/O访问的数据量的确定方法,包括:
所述I/O访问的数据量按照应用程序的I/O访问的数据量来计算,或按照应用程序的每个计算资源单元的平均I/O访问的数据量来计算。
6.根据权利要求2所述的多应用异步I/O请求的调度方法,其特征在于,所述I/O性能数据信息的确定方法,包括:
一种所述I/O性能数据信息为应用程序启动以来的累积量,或为一个时间片内的累积量,其中时间片的长短为设定的系统阈值。
7.根据权利要求1所述的多应用异步I/O请求的调度方法,其特征在于,还包括:
一个应用程序响应于针对I/O请求的一条提交命令,确定所述提交命令对应的若干条第一I/O请求信息,将若干条所述第一I/O请求信息进行合并处理后获得若干条第一I/O请求集信息,将所述第一I/O请求集信息发送至并行存储系统;其中,若所述提交命令对应的所述第一I/O请求信息的数量为多条,则将I/O请求对应数据量小于设定阈值的所述第一I/O请求信息进行合并,得到所述第一I/O请求集信息;
所述并行存储系统响应于来自一个应用程序发送的所述第一I/O请求集信息,对所述第一I/O请求集信息进行解析,获得若干条所述第一I/O请求信息,获取该应用程序的运行特征信息,将若干条所述第一I/O请求信息存放至I/O请求池中。
8.一种多应用异步I/O请求的调度系统,其特征在于,包括:
第一响应模块,用于一个应用程序响应于针对I/O请求的一条提交命令,将所述提交命令对应的若干条第一I/O请求信息发送至并行存储系统;
第二响应模块,用于所述并行存储系统响应于来自一个应用程序发送的若干条所述第一I/O请求信息,将若干条所述第一I/O请求信息存放至I/O请求池中;
执行模块,用于所述并行存储系统响应于执行I/O请求的命令,从所述I/O请求池中的所有I/O请求对应的所有应用程序中,确定各个所述应用程序的I/O特征信息,并根据设定的I/O调度方式和各个所述应用程序的I/O特征信息,选择一个目标应用程序,执行所述目标应用程序的一个I/O请求。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的多应用异步I/O请求的调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7中任一项所述的多应用异步I/O请求的调度方法的计算机程序。
CN202311532811.1A 2023-11-17 2023-11-17 多应用异步i/o请求的调度方法及系统、设备及介质 Active CN117251275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311532811.1A CN117251275B (zh) 2023-11-17 2023-11-17 多应用异步i/o请求的调度方法及系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311532811.1A CN117251275B (zh) 2023-11-17 2023-11-17 多应用异步i/o请求的调度方法及系统、设备及介质

Publications (2)

Publication Number Publication Date
CN117251275A true CN117251275A (zh) 2023-12-19
CN117251275B CN117251275B (zh) 2024-01-30

Family

ID=89131723

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311532811.1A Active CN117251275B (zh) 2023-11-17 2023-11-17 多应用异步i/o请求的调度方法及系统、设备及介质

Country Status (1)

Country Link
CN (1) CN117251275B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453378A (zh) * 2023-12-25 2024-01-26 北京卡普拉科技有限公司 多应用程序间i/o请求调度方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103906257A (zh) * 2014-04-18 2014-07-02 北京邮电大学 基于gpp的lte宽带通信系统计算资源调度器及其调度方法
CN110322010A (zh) * 2019-07-02 2019-10-11 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法
US20200379671A1 (en) * 2019-05-30 2020-12-03 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for processing i/o information of data, method and apparatus for analyzing i/o information of data, and related devices
CN113194040A (zh) * 2021-04-28 2021-07-30 王程 瞬时高并发服务器线程池拥塞智能控制方法
CN113792621A (zh) * 2021-08-27 2021-12-14 杭州电子科技大学 一种基于fpga的目标检测加速器设计方法
CN114706820A (zh) * 2022-05-18 2022-07-05 北京卡普拉科技有限公司 异步i/o请求的调度方法、系统、电子设备及介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103906257A (zh) * 2014-04-18 2014-07-02 北京邮电大学 基于gpp的lte宽带通信系统计算资源调度器及其调度方法
US20200379671A1 (en) * 2019-05-30 2020-12-03 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for processing i/o information of data, method and apparatus for analyzing i/o information of data, and related devices
CN110322010A (zh) * 2019-07-02 2019-10-11 深圳忆海原识科技有限公司 用于类脑智能与认知计算的脉冲神经网络运算系统及方法
CN113194040A (zh) * 2021-04-28 2021-07-30 王程 瞬时高并发服务器线程池拥塞智能控制方法
CN113792621A (zh) * 2021-08-27 2021-12-14 杭州电子科技大学 一种基于fpga的目标检测加速器设计方法
CN114706820A (zh) * 2022-05-18 2022-07-05 北京卡普拉科技有限公司 异步i/o请求的调度方法、系统、电子设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
马畅;何莉;金坦;程;谢维;: "基于I/O完成端口的核电厂MES系统辐射数据采集软件设计及关键技术研究", 核电子学与探测技术, no. 09 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453378A (zh) * 2023-12-25 2024-01-26 北京卡普拉科技有限公司 多应用程序间i/o请求调度方法、装置、设备及介质
CN117453378B (zh) * 2023-12-25 2024-03-19 北京卡普拉科技有限公司 多应用程序间i/o请求调度方法、装置、设备及介质

Also Published As

Publication number Publication date
CN117251275B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
US8424007B1 (en) Prioritizing tasks from virtual machines
CN117251275B (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
CN102541460B (zh) 一种多磁盘场景下的磁盘管理方法和设备
WO2022095815A1 (zh) 显存管理方法、装置、设备及系统
KR101356033B1 (ko) 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
CN107273200B (zh) 一种针对异构存储的任务调度方法
CN113010297A (zh) 基于消息队列的数据库写入调度器、写入方法和存储介质
CN114500401B (zh) 一种应对突发流量的资源调度方法和系统
CN109597680B (zh) 任务排队响应参数估算方法及装置
CN116248699B (zh) 多副本场景下的数据读取方法、装置、设备及存储介质
CN115794446B (zh) 一种消息处理方法、装置、电子设备和存储介质
CN116089477B (zh) 分布式训练方法及系统
CN115202842A (zh) 任务调度方法及装置
CN113127179A (zh) 资源调度方法、装置、电子设备及计算机可读介质
CN116541160A (zh) 函数部署方法、装置、服务器及云计算平台
CN112114967B (zh) 一种基于服务优先级的gpu资源预留方法
CN116932156A (zh) 一种任务处理方法、装置及系统
US20220374154A1 (en) Methods and apparatus for issuing memory access commands
Singh et al. Priority Heuristic in MDRTDBS
CN117453378B (zh) 多应用程序间i/o请求调度方法、装置、设备及介质
CN113741810B (zh) 一种数据迁移方法及装置
CN116126546B (zh) 一种性能调优的方法、装置、电子设备及介质
CN111966571B (zh) 基于arm-fpga协处理器异构平台的时间估算协同处理方法
WO2023160371A1 (zh) 任务调度方法、装置、电子设备以及计算机可读存储介质
WO2024165027A1 (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
GR01 Patent grant
GR01 Patent grant