CN117406936A - Io请求调度方法、装置、电子设备和存储介质 - Google Patents
Io请求调度方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117406936A CN117406936A CN202311714792.4A CN202311714792A CN117406936A CN 117406936 A CN117406936 A CN 117406936A CN 202311714792 A CN202311714792 A CN 202311714792A CN 117406936 A CN117406936 A CN 117406936A
- Authority
- CN
- China
- Prior art keywords
- target
- app
- scheduling
- request
- queue
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提出一种IO请求调度方法、装置、电子设备和存储介质,涉及数据存储技术领域,该方法中APP标识模块根据接收的IO请求确定目标标识。其中,目标标识用于唯一标识应用。文件系统模块根据IO请求确定目标IO类型。APP调度模块根据目标标识、配置表和目标IO类型确定目标队列。APP调度模块将IO请求保存到目标队列,并根据目标队列的优先级调度IO请求。根据用户配置的应用优先级调度应用的IO请求,能够保证低时延应用优先分配带宽优先分配带宽得到优先调度,有效降低优先级高的IO请求的调度时延,提升用户使用体验。
Description
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种IO请求调度方法、装置、电子设备和存储介质。
背景技术
随着互联网技术的飞速发展,用户在电子设备上安装的各类应用程序(Application,简称:APP)越来越多,例如,视频APP,游戏APP、购物APP等应用。这将导致电子设备上产生大量输入输出(Input Output,简称:IO)请求,电子设备通常根据IO调度器的调度算法处理IO请求,调度IO请求时无法保证低时延应用的IO时延和带宽,从而导致用户使用体验较差。
发明内容
有鉴于此,本发明的目的在于提供一种IO请求调度方法、装置、电子设备和存储介质,能够按照用户配置的应用优先级调度应用的IO请求。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种IO请求调度方法,应用于电子设备,所述电子设备维护有配置表和多个不同调度优先级的调度队列,所述配置表的配置项用来记录应用IO请求的调度优先级信息;所述方法包括:
APP标识模块根据接收的IO请求确定目标标识;所述目标标识用于唯一标识应用;
文件系统模块根据所述IO请求确定目标IO类型;
APP调度模块根据所述目标标识、所述配置表和所述目标IO类型确定目标队列;所述目标队列为所述调度队列中的一个;
APP调度模块将所述IO请求保存到所述目标队列,并根据所述目标队列的优先级调度所述IO请求。
在可选的实施方式中,当所述目标标识为APP标识时,所述APP标识模块根据接收的IO请求确定目标标识,包括:
所述APP标识模块根据接收的IO请求获取目标APP标识,并将所述目标APP标识确定为所述目标标识。
在可选的实施方式中,当所述目标标识为标签时,所述APP标识模块根据接收的IO请求确定目标标识,包括:
所述APP标识模块根据接收的IO请求获取目标APP标识;
所述APP标识模块根据所述目标APP标识和所述配置表,获取目标标签,并将所述目标标签确定为所述目标标识;所述配置表的每个配置项中记录有APP标识与标签的一一对应关系。
在可选的实施方式中,所述APP标识模块根据所述目标APP标识和所述配置表,获取目标标签,包括:
当所述配置表未记录有所述目标APP标识时,所述APP标识模块将默认配置项中的标签确定为所述目标标签;
当所述配置表中记录有所述目标APP标识时,所述APP标识模块将所述目标APP标识对应的配置项中的标签确定为所述目标标签。
在可选的实施方式中,所述配置项包括APP标识和队列标识;所述APP调度模块根据所述目标标识、所述配置表和所述目标IO类型确定目标队列,包括:
所述APP调度模块根据所述目标标识和所述配置表确定目标配置项;
所述APP调度模块根据所述目标配置项中的队列标识和所述目标IO类型确定所述目标队列;所述队列标识用于唯一标识所述调度队列。
在可选的实施方式中,每个所述调度队列包括读队列和写队列;所述APP调度模块根据所述目标配置项中的队列标识和所述目标IO类型确定所述目标队列,包括:
所述APP调度模块根据所述目标配置项中的队列标识在多个所述调度队列中确定候选队列;
当所述目标IO类型为读请求时,所述APP调度模块将所述候选队列中的读队列确定为所述目标队列;
当所述目标IO类型为写请求时,所述APP调度模块将所述候选队列中的写队列确定为所述目标队列。
在可选的实施方式中,所述配置项包括调度权重,所述APP调度模块将所述IO请求保存到所述目标队列,并根据所述目标队列的优先级调度所述IO请求,包括:
所述APP调度模块根据所述目标标识和所述配置表确定目标配置项;
所述APP调度模块按照所述目标配置项中的调度权重的顺序将所述IO请求保存到所述目标队列;
所述APP调度模块按照所述优先级依次调度每个队列中的IO请求。
第二方面,本发明提供一种IO请求调度装置,应用于电子设备,所述电子设备维护有配置表和多个不同调度优先级的调度队列,所述配置表的配置项用来记录应用IO请求的调度优先级信息;所述装置包括:
APP标识模块,用于根据接收的IO请求确定目标标识;所述目标标识用于唯一标识应用;
文件系统模块,用于根据所述IO请求确定目标IO类型;
APP调度模块,用于根据所述目标标识、所述配置表和所述目标IO类型确定目标队列;所述目标队列为所述调度队列中的一个;
APP调度模块,还用于将所述IO请求保存到所述目标队列,并根据所述目标队列的优先级调度所述IO请求。
第三方面,本发明提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在调用所述计算机程序时执行如前述实施方式任一项所述的IO请求调度方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式任一项所述的IO请求调度方法。
相比于现有技术,本发明实施例提供的IO请求调度方法、装置、电子设备和存储介质,涉及数据存储技术领域,该方法中APP标识模块根据接收的IO请求确定目标标识。其中,目标标识用于唯一标识应用。文件系统模块根据IO请求确定目标IO类型。APP调度模块根据目标标识、配置表和目标IO类型确定目标队列。APP调度模块将IO请求保存到目标队列,并根据目标队列的优先级调度IO请求。根据用户配置的应用优先级调度应用的IO请求,能够保证低时延应用优先分配带宽得到优先调度,有效降低优先级高的IO请求的调度时延,提升用户使用体验。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了单机场景下一个标准的文件IO请求的一种调度流程示意图。
图2示出了本发明实施例提供的电子设备的一种方框示意图。
图3示出了本发明实施例提供的一种软件模块部署示意图。
图4示出了本发明实施例提供的IO请求调度方法的一种流程示意图。
图5示出了图4中步骤S10、步骤S30和步骤S40的子步骤的一种流程示意图。
图6示出了本发明实施例提供的IO请求调度装置的方框示意图。
图标:100-电子设备;110-存储器;120-处理器;130-通信模块;200-IO请求调度装置;201-APP标识模块;202-文件系统模块;203-APP调度模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
自计算机问世以来,计算、存储和网络一直是其应用发展的三个主要方向。其中,存储系统作为信息的载体,承担着数据持久化和高性能输入输出的重任。不同于计算和网络的字节访问模式,存储设备具有其天然的特殊性,例如机械硬盘支持的最小访问单元为512字节的扇区,固态硬盘支持的最小访问单元为4K字节的扇区。
为了提高存储设备的可用性和可扩展性,更好地服务客户,计算机软件提供了各种接口诸如文件、对象、块等抽象,以及为了改善不同IO模式的存储性能和效率而在内核或用户态叠加的各种调度策略和软件扩展。这一系列软件方案有效提高了存储设备的可靠性和可用性,同时极大增加了软件结构和存储系统的复杂度。
请参照图1,图1示出了单机场景下一个标准的文件IO请求从应用程序到达硬件存储介质所经历的各层级调用关系,应用程序访问文件的IO请求从用户态传给存储系统的内核层,经虚拟文件系统/文件系统层、块层和设备驱动层依次处理后,将IO请求下发给硬件处理,根据IO请求访问硬盘。
基于近些年兴起的闪存型存储介质的写放大和有限介质寿命等特性,现有存储系统在块层对IO请求进行合并,再根据IO调度器设置的算法(例如,先进先出、Deadline等)对合并后IO进行处理,从而减少访问硬盘的次数,有效提升硬盘的可靠性和存储性能。
现有技术中,块层无法识别IO请求来自哪个应用,IO调度器在调度IO请求时主要考虑的是提升全局吞吐量,无法实现为重要应用分配更多资源得到优先调度,从而导致无法保证重要应用的调度时延,进而影响用户的使用体验。
基于此,本发明实施例提供了一种IO请求调度方法、装置、电子设备和存储介质,根据用户配置的应用优先级调度应用的IO请求,能够保证低时延应用优先分配带宽优先分配带宽得到优先调度,有效降低优先级高的IO请求的调度时延,提升用户使用体验。
下面结合附图对本发明的各实施例进行详细说明。
请参照图2,图2为本发明实施例提供的电子设备100的一种方框示意图。电子设备100可以为个人电脑(personal computer,PC)、掌上电脑(Personal Digital Assistant,PDA)、笔记本电脑、平板电脑、手机、服务器、等具有数据存储功能的设备。电子设备100包括存储器110、处理器120及通信模块130。存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。例如,当存储器110中存储的计算机程序被处理器120执行时,可以实现上述各实施例所揭示的IO请求调度方法。
通信模块130用于通过网络建立电子设备100与其它通信终端之间的通信连接,并用于通过网络收发数据。
应当理解的是,图2所示的结构仅为电子设备100的结构示意图,电子设备100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
下面针对按照优先级调度应用的IO请求,本发明实施例给出了一种可能的实现方式,电子设备中软件模块包括APP标识模块、页缓存模块、文件系统模块、APP调度模块和块模块,如图3所示。用户根据应用的重要程度配置的应用优先级,将其保存在应用优先级配置文件,同时通过配置修改进程将已配置的应用优先级保存在dma-buf共享内存的配置表中。
应用下发的IO请求会依次经过APP标识模块、页缓存模块、文件系统模块、APP调度模块和块模块进行处理,最终根据IO请求访问硬盘。其中,页缓存模块、文件系统模块和块模块是现有软件模块,为了降低对现有软件模块的软件架构冲击,本发明在电子设备的内核中新增软件模块,即APP标识模块和APP调度模块。APP标识模块在转发IO请求时添加能够唯一标识应用的标识,APP调度模块则根据IO请求对应的标识获取应用的优先级,并按照优先级调度应用的IO请求。
可见,本方案给出的应用IO请求调度的实现方式,APP标识模块以栈式文件系统叠加在现有文件系统之上,对现有文件系统无侵入,对所有文件系统都适用。更无需对电子设备的内核模块进行过多开发适配,有效降低电子设备的设计成本,同时能够根据实际应用场景按照预设优先级调度应用IO请求。
请参照图4,图4示出了本发明实施例提供的IO请求调度方法的一种流程示意图,该流程的执行主体可以为前文所述的电子设备,电子设备维护有配置表和多个不同调度优先级的调度队列,配置表的配置项用来记录应用IO请求的调度优先级信息。该方法包括以下步骤:
步骤S10,APP标识模块根据接收的IO请求确定目标标识。
其中,目标标识用于唯一标识应用。
在本发明实施例中,用户在完成文件系统的部署后,根据实际应用场景和电子设备所支持的优先级配置每个应用的调度优先级信息,将应用的调度优先级信息保存到用户态配置文件中。
文件系统上电时,加载APP标识模块和APP调度模块等软件模块,读取用户态配置文件,通过mmap将应用的调度优先级信息下发到内核,内核根据应用的调度优先级信息生成配置表。并生成多个不同调度优先级的调度队列。
假设电子设备支持的调度优先级为0-4级,调度顺序依次是0、1、2、3和4。为每个优先级创建调度队列,调度队列的队列标识依次设置为0-4,即队列标识与调度优先级一一对应。用户可根据应用的重要程度为应用IO请求指定不同的调度队列,从而实现按照优先级调度应用IO请求。
作为一种可能得实现方式,APP标识模块是一个位于虚拟文件系统之下的文件系统,用于接收来自应用的IO请求,根据接收的IO请求发起者的进程ID确定目标标识。APP标识模块可以将目标标识保存在IO请求上下文的私有数据中,再将携带目标标识的IO请求发送给文件系统模块或者经由页缓存模块发送给文件系统模块。
步骤S20,文件系统模块根据IO请求确定目标IO类型。
在本发明实施例中,应用的IO请求可以为读数据、写数据、删除文件、创建文件、查询文件元数据等操作。文件系统模块根据接收到的IO请求的操作类型确定目标IO类型,并将IO请求和目标IO类型发送给APP调度模块。
步骤S30,APP调度模块根据目标标识、配置表和目标IO类型确定目标队列。
其中,目标队列为调度队列中的一个。
在本发明实施例中,APP调度模块获取IO请求中携带目标标识,根据目标标识、配置表和目标IO类型在多个不同调度优先级的调度队列中确定目标队列。
步骤S40,APP调度模块将IO请求保存到目标队列,并根据目标队列的优先级调度IO请求。
在本发明实施例中,为了在APP调度模块实现按照已配置的优先级调度应用IO请求,在文件系统上电时则将块模块的IO调度策略设置为NOOP,即关闭块模块的IO调度功能,直接将接收到的IO请求下发给硬件。APP调度模块将接收到的IO请求入队到目标队列,并按照调度队列的优先级调度每个调度队列中的IO请求。
综上所述,本发明实施例提供的IO请求调度方法,APP标识模块根据接收的IO请求确定目标标识。其中,目标标识用于唯一标识应用。文件系统模块根据IO请求确定目标IO类型。APP调度模块根据目标标识、配置表和目标IO类型确定目标队列。APP调度模块将IO请求保存到目标队列,并根据目标队列的优先级调度IO请求。根据用户配置的应用优先级调度应用的IO请求,能够保证低时延应用优先分配带宽得到优先调度,有效降低优先级高的IO请求的调度时延,提升用户使用体验。
可选地,在一种可能的实现方式中,可以直接使用APP标识作为识别IO请求的目标标识。当目标标识为APP标识时,图4中步骤S10的子步骤,可以包括:
APP标识模块根据接收的IO请求获取目标APP标识,并将目标APP标识确定为目标标识。
在本发明实施例中,APP标识模块根据接收到的IO请求发起者的进程ID获取目标APP标识,APP标识通常为APP名称。
可选地,在另一种可能的实现方式中,由于应用名称一般较长,为避免转发IO请求时消耗太多内存资源,使用长度较短的标签作为唯一标识应用的目标标识。相比于使用应用标识作为目标标识,明显减少内存资源消耗。当目标标识为标签时,请参照图5,图4中步骤S10的子步骤,可以包括:
步骤S101,APP标识模块根据接收的IO请求获取目标APP标识。
步骤S102,APP标识模块根据目标APP标识和配置表,获取目标标签,并将目标标签确定为目标标识。
其中,配置表的每个配置项中记录有APP标识与标签的一一对应关系。
在本发明实施例中,APP标识模块根据IO请求得到目标APP标识,并通过目标APP标识查询配置表,从配置表中获取与IO请求匹配的目标标签,将目标标签作为目标标识保存在IO请求上下文的私有数据中。
可选地,在实际应用中,用户若配置应用的优先级则按照配置表中的配置项确定目标标识,若用户未配置应用的优先级则按照默认配置项确定目标标识。图5中步骤S102中APP标识模块根据目标APP标识和配置表,获取目标标签的子步骤,可以包括:
第一步,当配置表未记录有目标APP标识时,APP标识模块将默认配置项中的标签确定为目标标签。
在本发明实施例中,若配置表中没有记录目标APP标识,则说明用户未配置该应用的优先级,则读取默认配置项,将默认配置项中的标签作为目标标签。
第二步,当配置表中记录有目标APP标识时,APP标识模块将目标APP标识对应的配置项中的标签确定为目标标签。
在本发明实施例中,若配置表中记录有目标APP标识,则说明用户已配置该应用的优先级,则将目标APP标识对应的配置项中的标签作为目标标签。
可选地,在实际应用中,APP调度模块根据IO请求中解析出来的目标标识获取IO请求的调度优先级。配置项包括APP标识和队列标识,请参照图5,图4中步骤S30的子步骤,可以包括:
步骤S301,APP调度模块根据目标标识和配置表确定目标配置项。
在本发明实施例中,APP调度模块根据目标标识遍历查询配置表中的配置项,当配置表中未记录目标标识时,则将默认配置项确定为目标配置项。若配置表中记录有目标标识时,则将目标标识所在的配置项确定为目标配置项。
步骤S302,APP调度模块根据目标配置项中的队列标识和目标IO类型确定目标队列。
其中,队列标识用于唯一标识调度队列。
在本发明实施例中,APP调度模块获取目标配置项中的队列标识作为目标队列标识,并根据目标队列标识和目标IO类型确定目标队列。
作为一种实现方式,当目标标识为APP标识时,应用调度优先级的配置表如表1所示。当目标标识为标签时,应用调度优先级的配置表如表2所示。
表1
表2
可选地,在实际应用中,根据IO请求的IO类型可分为读请求和写请求,为了更合理为读请求和写请求分配调度资源,每个优先级创建对应的读队列和写队列,即每个调度队列包括读队列和写队列,图5中步骤S302子步骤,可以包括:
APP调度模块根据目标配置项中的队列标识在多个调度队列中确定候选队列。当目标IO类型为读请求时,APP调度模块将候选队列中的读队列确定为目标队列;当目标IO类型为写请求时,APP调度模块将候选队列中的写队列确定为目标队列。
在本发明实施例中,APP调度模块在多个调度中找到目标配置项中的队列标识匹配的调度队列作为候选队列,候选队列中包括读队列和写队列。当目标IO类型为读请求,例如读数据、查询文件元数据等读操作,则APP调度模块将候选队列中的读队列确定为目标队列。当目标IO类型为写请求,例如写数据、删除文件、创建文件等写操作,则APP调度模块将候选队列中的写队列确定为目标队列。
作为一种实施方式,假设用户在同一个应用终端做了两个操作,分别为修改文件和看视频。应用终端响应用户操作分别生成IO写请求和IO读请求,APP调度模块将IO读请求保存到对应的读队列中,将IO写请求保存在对应的写队列中。相比于现有技术中不区分读写队列,本发明通过为读队列和写队列设置不同的调度频率调整读请求和写请求的调度时延。
可选地,作为一种可能的实现方式中,可以通过设置调度权重区分每个调度队列中的应用IO请求的调度优先级。配置项包括调度权重,请参照图5,图4中步骤S40的子步骤,可以包括:
步骤S401,APP调度模块根据目标标识和配置表确定目标配置项。
步骤S402,APP调度模块按照目标配置项中的调度权重的顺序将IO请求保存到目标队列。
在本发明实施例中,权重范围可以为0~100的整数,调度权重越大,调度的优先级越高。APP调度模块将目标配置项中的调度权重确定为目标调度权重,依次比较目标队列中每个IO请求的调度权重和目标调度权重的大小,按照调度权重的降序顺序将IO请求保存到目标队列中。
步骤S403,APP调度模块按照优先级依次调度每个队列中的IO请求。
在本发明实施例中, APP调度模块按照优先级的降序顺序依次调度每个调度队列的IO请求。当同一个队列中IO请求访问同一个文件的连续存储区域或同一存储区域时,则对IO请求进行合并,再调度合并后的IO请求。
需要说明的是,当用户更新应用优先级时,电子设备将更新后的应用优先级保存在应用优先级配置文件,并通过配置修改进程将更新后的应用优先级保存到共享内存的配置表中,APP调度模块监听共享内存中的配置表,当配置表发生变化时,新接收到的IO请求按照更新后的配置表中记录的优先级进行处理,正在处理的IO请求则按照已获取的更新前的优先级进行处理,能够根据用户应用场景动态更新应用的调度优先级,从而快速响应用户调整应用优先级的操作。
基于同一发明构思,本发明实施例还提供了一种IO请求调度装置。其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
请参照图6,图6示出了本发明实施例提供的一种IO请求调度装置200的方框示意图。IO请求调度装置200应用于电子设备,电子设备维护有配置表和多个不同调度优先级的调度队列,配置表的配置项用来记录应用IO请求的调度优先级信息。IO请求调度装置200包括APP标识模块201、文件系统模块202和APP调度模块203。
APP标识模块201,用于根据接收的IO请求确定目标标识,目标标识用于唯一标识应用。
文件系统模块202,用于根据IO请求确定目标IO类型;
APP调度模块203,用于根据目标标识、配置表和目标IO类型确定目标队列,目标队列为调度队列中的一个。
APP调度模块203,还用于将IO请求保存到目标队列,并根据目标队列的优先级调度IO请求。
综上所述,本发明实施例提供的一种IO请求调度装置,IO请求调度装置包括APP标识模块、文件系统模块和APP调度模块。APP标识模块用于根据接收的IO请求确定目标标识,目标标识用于唯一标识应用。文件系统模块用于根据IO请求确定目标IO类型。APP调度模块用于根据目标标识、配置表和目标IO类型确定目标队列,目标队列为调度队列中的一个。APP调度模块还用于将IO请求保存到目标队列,并根据目标队列的优先级调度IO请求。根据用户配置的应用优先级调度应用的IO请求,能够保证低时延应用优先分配带宽优先分配带宽优先分配带宽得到优先调度,有效降低优先级高的IO请求的调度时延,提升用户使用体验。
可选地,当目标标识为APP标识时,APP标识模块201,具体用于根据接收的IO请求获取目标APP标识,并将目标APP标识确定为目标标识。
可选地,当目标标识为标签时,APP标识模块201,具体用于根据接收的IO请求获取目标APP标识,根据目标APP标识和配置表,获取目标标签,并将目标标签确定为目标标识。其中,配置表的每个配置项中记录有APP标识与标签的一一对应关系。
可选地,APP标识模块201,具体用于当配置表未记录有目标APP标识时,则将默认配置项中的标签确定为目标标签。当配置表中记录有目标APP标识时,将目标APP标识对应的配置项中的标签确定为目标标签。
可选地,配置项包括APP标识和队列标识。APP调度模块203,具体用于根据目标标识和配置表确定目标配置项,根据目标配置项中的队列标识和目标IO类型确定目标队列。其中,队列标识用于唯一标识调度队列。
可选地,每个调度队列包括读队列和写队列。APP调度模块203,具体用于根据目标配置项中的队列标识在多个调度队列中确定候选队列。当目标IO类型为读请求时,将候选队列中的读队列确定为目标队列。当目标IO类型为写请求时,将候选队列中的写队列确定为目标队列。
可选地,配置项包括调度权重,APP调度模块203,具体用于根据目标标识和配置表确定目标配置项,按照目标配置项中的调度权重的顺序将IO请求保存到目标队列,按照优先级依次调度每个队列中的IO请求。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器120执行时实现上述各实施例所揭示的IO请求调度方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种IO请求调度方法,其特征在于,应用于电子设备,所述电子设备维护有配置表和多个不同调度优先级的调度队列,所述配置表的配置项用来记录应用IO请求的调度优先级信息;所述方法包括:
APP标识模块根据接收的IO请求确定目标标识;所述目标标识用于唯一标识应用;
文件系统模块根据所述IO请求确定目标IO类型;
APP调度模块根据所述目标标识、所述配置表和所述目标IO类型确定目标队列;所述目标队列为所述调度队列中的一个;
APP调度模块将所述IO请求保存到所述目标队列,并根据所述目标队列的优先级调度所述IO请求。
2.根据权利要求1所述的IO请求调度方法,其特征在于,当所述目标标识为APP标识时,所述APP标识模块根据接收的IO请求确定目标标识,包括:
所述APP标识模块根据接收的IO请求获取目标APP标识,并将所述目标APP标识确定为所述目标标识。
3.根据权利要求1所述的IO请求调度方法,其特征在于,当所述目标标识为标签时,所述APP标识模块根据接收的IO请求确定目标标识,包括:
所述APP标识模块根据接收的IO请求获取目标APP标识;
所述APP标识模块根据所述目标APP标识和所述配置表,获取目标标签,并将所述目标标签确定为所述目标标识;所述配置表的每个配置项中记录有APP标识与标签的一一对应关系。
4.根据权利要求3所述的IO请求调度方法,其特征在于,所述APP标识模块根据所述目标APP标识和所述配置表,获取目标标签,包括:
当所述配置表未记录有所述目标APP标识时,所述APP标识模块将默认配置项中的标签确定为所述目标标签;
当所述配置表中记录有所述目标APP标识时,将所述APP标识模块所述目标APP标识对应的配置项中的标签确定为所述目标标签。
5.根据权利要求1所述的IO请求调度方法,其特征在于,所述配置项包括APP标识和队列标识;所述APP调度模块根据所述目标标识、所述配置表和所述目标IO类型确定目标队列,包括:
所述APP调度模块根据所述目标标识和所述配置表确定目标配置项;
所述APP调度模块根据所述目标配置项中的队列标识和所述目标IO类型确定所述目标队列;所述队列标识用于唯一标识所述调度队列。
6.根据权利要求5所述的IO请求调度方法,其特征在于,每个所述调度队列包括读队列和写队列;所述APP调度模块根据所述目标配置项中的队列标识和所述目标IO类型确定所述目标队列,包括:
所述APP调度模块根据所述目标配置项中的队列标识在多个所述调度队列中确定候选队列;
当所述目标IO类型为读请求时,所述APP调度模块将所述候选队列中的读队列确定为所述目标队列;
当所述目标IO类型为写请求时,所述APP调度模块将所述候选队列中的写队列确定为所述目标队列。
7.根据权利要求1所述的IO请求调度方法,其特征在于,所述配置项包括调度权重,所述APP调度模块将所述IO请求保存到所述目标队列,并根据所述目标队列的优先级调度所述IO请求,包括:
所述APP调度模块根据所述目标标识和所述配置表确定目标配置项;
所述APP调度模块按照所述目标配置项中的调度权重的顺序将所述IO请求保存到所述目标队列;
所述APP调度模块按照所述优先级依次调度每个队列中的IO请求。
8.一种IO请求调度装置,其特征在于,应用于电子设备,所述电子设备维护有配置表和多个不同调度优先级的调度队列,所述配置表的配置项用来记录应用IO请求的调度优先级信息;所述装置包括:
APP标识模块,用于根据接收的IO请求确定目标标识;所述目标标识用于唯一标识应用;
文件系统模块,用于根据所述IO请求确定目标IO类型;
APP调度模块,用于根据所述目标标识、所述配置表和所述目标IO类型确定目标队列;所述目标队列为所述调度队列中的一个;
APP调度模块,还用于将所述IO请求保存到所述目标队列,并根据所述目标队列的优先级调度所述IO请求。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于在调用所述计算机程序时执行如权利要求1-7任一项所述的IO请求调度方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述的IO请求调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311714792.4A CN117406936B (zh) | 2023-12-14 | 2023-12-14 | Io请求调度方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311714792.4A CN117406936B (zh) | 2023-12-14 | 2023-12-14 | Io请求调度方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117406936A true CN117406936A (zh) | 2024-01-16 |
CN117406936B CN117406936B (zh) | 2024-04-05 |
Family
ID=89496594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311714792.4A Active CN117406936B (zh) | 2023-12-14 | 2023-12-14 | Io请求调度方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117406936B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090187705A1 (en) * | 2008-01-18 | 2009-07-23 | Microsoft Corporation | Fair and dynamic disk input/output bandwidth distribution |
US20100082856A1 (en) * | 2008-06-11 | 2010-04-01 | Kimoto Christian A | Managing Command Request Time-outs In QOS Priority Queues |
US20140245299A1 (en) * | 2013-02-27 | 2014-08-28 | Vmware, Inc. | Managing Storage Commands According to Input-Output Priorities and Dependencies |
EP3188029A1 (en) * | 2015-12-31 | 2017-07-05 | Huawei Technologies Co. Ltd. | Management and dispatching apparatus, system, and method based on sas |
CN108121608A (zh) * | 2016-11-29 | 2018-06-05 | 杭州华为数字技术有限公司 | 一种队列调度方法以及节点设备 |
CN108259382A (zh) * | 2017-12-06 | 2018-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 3×256优先级调度电路 |
US20180285294A1 (en) * | 2017-04-01 | 2018-10-04 | Anjaneya R. Chagam Reddy | Quality of service based handling of input/output requests method and apparatus |
CN109766056A (zh) * | 2018-11-28 | 2019-05-17 | 上海威固信息技术股份有限公司 | 一种存储阵列控制器io队列调度方法与装置 |
US20210034552A1 (en) * | 2019-08-02 | 2021-02-04 | EMC IP Holding Company LLC | Storage system with submission queue selection utilizing application and submission queue priority |
CN113449994A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 任务单的分配方法、装置、电子设备、介质和程序产品 |
CN116431099A (zh) * | 2023-06-13 | 2023-07-14 | 摩尔线程智能科技(北京)有限责任公司 | 数据的处理方法、多输入输出队列电路及存储介质 |
-
2023
- 2023-12-14 CN CN202311714792.4A patent/CN117406936B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090187705A1 (en) * | 2008-01-18 | 2009-07-23 | Microsoft Corporation | Fair and dynamic disk input/output bandwidth distribution |
US20100082856A1 (en) * | 2008-06-11 | 2010-04-01 | Kimoto Christian A | Managing Command Request Time-outs In QOS Priority Queues |
US20140245299A1 (en) * | 2013-02-27 | 2014-08-28 | Vmware, Inc. | Managing Storage Commands According to Input-Output Priorities and Dependencies |
EP3188029A1 (en) * | 2015-12-31 | 2017-07-05 | Huawei Technologies Co. Ltd. | Management and dispatching apparatus, system, and method based on sas |
CN108121608A (zh) * | 2016-11-29 | 2018-06-05 | 杭州华为数字技术有限公司 | 一种队列调度方法以及节点设备 |
US20180285294A1 (en) * | 2017-04-01 | 2018-10-04 | Anjaneya R. Chagam Reddy | Quality of service based handling of input/output requests method and apparatus |
CN108259382A (zh) * | 2017-12-06 | 2018-07-06 | 中国航空工业集团公司西安航空计算技术研究所 | 3×256优先级调度电路 |
CN109766056A (zh) * | 2018-11-28 | 2019-05-17 | 上海威固信息技术股份有限公司 | 一种存储阵列控制器io队列调度方法与装置 |
US20210034552A1 (en) * | 2019-08-02 | 2021-02-04 | EMC IP Holding Company LLC | Storage system with submission queue selection utilizing application and submission queue priority |
CN113449994A (zh) * | 2021-06-29 | 2021-09-28 | 中国工商银行股份有限公司 | 任务单的分配方法、装置、电子设备、介质和程序产品 |
CN116431099A (zh) * | 2023-06-13 | 2023-07-14 | 摩尔线程智能科技(北京)有限责任公司 | 数据的处理方法、多输入输出队列电路及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117406936B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101587631B1 (ko) | 클라우드 기반 로컬 장치와 로컬 장치의 파일 읽기 및 저장 방법 | |
US8590050B2 (en) | Security compliant data storage management | |
US20100325199A1 (en) | Client, brokerage server and method for providing cloud storage | |
KR100872178B1 (ko) | 우선순위 기반의 무선 usb 전송 서비스 관리 장치 및방법 | |
CN110389935B (zh) | 一种启动小程序的方法、设备和计算机存储介质 | |
CN111221638B (zh) | 并发任务的调度处理方法、装置、设备和介质 | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
US20170052979A1 (en) | Input/Output (IO) Request Processing Method and File Server | |
US20140007126A1 (en) | Method and device for allocating browser process | |
CN113900597A (zh) | 一种数据存储方法、系统、设备及存储介质 | |
US11237761B2 (en) | Management of multiple physical function nonvolatile memory devices | |
US20080182558A1 (en) | Contents management method and apparatus | |
CN110740088A (zh) | 推荐、添加社交资源的方法、装置、终端及介质 | |
CN116737080A (zh) | 分布式存储系统数据块管理方法、系统、设备及储存介质 | |
US8321569B2 (en) | Server resource allocation | |
CN109857553B (zh) | 内存管理方法及装置 | |
CN117406936B (zh) | Io请求调度方法、装置、电子设备和存储介质 | |
KR101899970B1 (ko) | 모바일 클라우드 환경에 적용되는 모바일 단말과 클라우드 서버 및 이를 이용한 모바일 클라우드 컴퓨팅 방법 | |
CN102055671A (zh) | 一种多应用发包的优先级管理方法 | |
CN113407357B (zh) | 进程间数据搬移的方法及装置 | |
CN115576685A (zh) | 容器的调度方法、装置及计算机设备 | |
CN111459653B (zh) | 集群调度方法、装置和系统以及电子设备 | |
CN111078233B (zh) | 一种应用推广的实现方法、装置、设备及存储介质 | |
CN110096355B (zh) | 一种共享资源分配方法、装置和设备 | |
CN108052536B (zh) | 一种IoT设备的文件系统 |
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 |