CN117075800A - 一种海量检查点数据的i/o感知自适应写入方法 - Google Patents
一种海量检查点数据的i/o感知自适应写入方法 Download PDFInfo
- Publication number
- CN117075800A CN117075800A CN202310865203.6A CN202310865203A CN117075800A CN 117075800 A CN117075800 A CN 117075800A CN 202310865203 A CN202310865203 A CN 202310865203A CN 117075800 A CN117075800 A CN 117075800A
- Authority
- CN
- China
- Prior art keywords
- writing
- period
- data
- target process
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 335
- 230000008447 perception Effects 0.000 title abstract description 10
- 230000008569 process Effects 0.000 claims abstract description 264
- 238000003860 storage Methods 0.000 claims abstract description 80
- 230000009123 feedback regulation Effects 0.000 claims abstract description 8
- 230000003044 adaptive effect Effects 0.000 claims description 38
- 230000001133 acceleration Effects 0.000 claims description 25
- 229920002153 Hydroxypropyl cellulose Polymers 0.000 description 20
- 235000010977 hydroxypropyl cellulose Nutrition 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001105 regulatory effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/0653—Monitoring storage devices or systems
-
- 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
-
- 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
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
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)
- Retry When Errors Occur (AREA)
Abstract
本申请提供了一种海量检查点数据的I/O感知自适应写入方法,所述方法根据进程的数量、存储***的属性设置检查点数据写入的初始状态;所述初始状态的初始状态参数包括写入周期;在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量;在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,从而自适应的调节每个进程的检查点数据的写入时机和写入数据量,避免了大规模高性能计算***的海量检查点数据的集中写入对存储***所造成的冲击。
Description
技术领域
本申请涉及高性能计算领域,具体而言,涉及一种海量检查点数据的I/O感知自适应写入方法。
背景技术
随着科学技术的进步,高性能计算(High Performance Computing,HPC)已经成为科学和工程领域的重要工具。高性能计算利用众多计算节点和存储设备组成的集群,以强大的计算能力处理超大规模的数据,广泛应用在生命科学、气象预报、深度学习等复杂计算领域。在过去的几十年里,HPC***的性能一直不断提高,已经成为科研和工程技术创新的重要支撑。
HPC***的性能用每秒浮点运算次数(FLOPS)来衡量。在2022年12月的超级计算机TOP500榜单中,排名前两位的Frontier和Fugaku拥有巨大的处理器核数,分别达到了8,730,112和7,630,848个,其中Frontier峰值性能高达1.102EFlop/s,是第一台突破百亿亿次(E级)计算速度的超级计算机。神威·太湖之光是我国国产性能最强的超级计算机,拥有40960个处理器,共10649600个核,***峰值性能可达125.436PFlops。
伴随着性能的提高,HPC***规模也迅速增长,节点数和组件数迅速增加。HPC***并不是简单的计算资源堆叠,而是节点间的通信和同步以支持各种应用程序的执行。但是这些节点以及***本身都可能遭遇各种故障,比如节点宕机、软件崩溃、硬盘损坏、互连网络中断等,导致程序无法正常运行。因此,HPC***需要具有一定可靠性,***能够保持稳定,不出现故障或者能够快速从故障恢复。可靠性和节点的数量以及单个节点的质量有关。在目前的制造工艺下,单个节点的可靠性已经相对稳定,因此随着HPC***规模的增大,整个***就会越不可靠,发生故障的概率也会增加。
平均无故障时间(Mean Time Between Failures,MTBF)是衡量HPC***可靠性的重要指标。MTBF越高,说明***越可靠,越不容易出现故障。据统计,P级高性能计算***的MTBF约为15小时。考虑到***规模的继续快速增长,Frontier等的E级HPC***的MTBF将只有数个小时甚至更短。这对于HPC上的应用程序是非常不利的,因为它们通常具有长时间运行和大规模进程等特性,在运行过程中更容易遭遇各种软硬件故障而导致程序运行中断。
然而随着程序规模的增长、进程数不断增加,加之异构架构的引入,保存检查点所需的数据量也越来越大。众多进程会产生海量的检查点数据,这不仅导致检查点保存的时间延长,还将对***性能造成负面影响。如果众多进程同时将海量检查点数据保存到共享存储***,I/O子***将面临严重的过载,导致网络拥塞和I/O瓶颈。检查点技术需要进一步优化来提高可扩展性和IO带宽利用率,比如减少检查点数据量、优化存储方式。
对于大规模并行***中的检查点软件来说,减少保存检查点文件过程对I/O子***造成的冲击是实现checkpoint软件可用性的重要指标。从底层来看就是对***共享I/O带宽资源使用的控制。对于使用协调同步通信协议的检查点软件来说,协调性的保证将导致大量进程同时向硬盘写入海量检查点数据,引发对I/O子***的冲击,因此如何能够自适应的根据不同***的综合硬件条件和实时负载状况来动态的确定检查点软件数据相应的最佳写入时机和写入数据量,成为了解决该问题的关键。
发明内容
有鉴于此,本申请的目的在于提供一种海量检查点数据的I/O感知自适应写入方法,所述方法自适应的调节每个进程的检查点数据的写入时机和写入数据量,避免了大规模高性能计算***的海量检查点数据的集中写入对存储***所造成的冲击,提高存储***带宽的利用率。
本申请实施例提供的一种海量检查点数据的I/O感知自适应写入方法,所述方法包括:
根据进程的数量、存储***的属性设置检查点数据写入的初始状态;所述初始状态的初始状态参数包括写入周期;
在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;
针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量;
在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,并在所述写入周期结束时进行入下一个写入周期。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入方法中,所述初始状态的初始状态参数中还包括写入概率;
在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程,包括:
在进入一个新的写入后周期后,每个进程均通过随机方法生成一随机概率;
选中随机概率小于初始状态参数中写入概率的进程作为目标进程。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入方法中,在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程,还包括:
判断是否存在连续N个周期都未被选中进程;其中,所述N为预设周期阈值;
若存在,则确定所述连续N个周期都未被选中进程作为目标进程。
在一些实施例中,所述的海量检查点数据的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示出了本申请实施例所述从全部进程中确定出所述写入周期对应的目标进程的方法流程图;
图3示出了本申请实施例所述的写入状态转换示意图;
图4示出了本申请实施例所述海量检查点数据的I/O感知自适应写入装置的结构示意图;
图5示出了示出了本申请实施例所述电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
随着科学技术的进步,高性能计算(High Performance Computing,HPC)已经成为科学和工程领域的重要工具。高性能计算利用众多计算节点和存储设备组成的集群,以强大的计算能力处理超大规模的数据,广泛应用在生命科学、气象预报、深度学习等复杂计算领域。在过去的几十年里,HPC***的性能一直不断提高,已经成为科研和工程技术创新的重要支撑。
HPC***的性能用每秒浮点运算次数(FLOPS)来衡量。在2022年12月的超级计算机TOP500榜单中,排名前两位的Frontier和Fugaku拥有巨大的处理器核数,分别达到了8,730,112和7,630,848个,其中Frontier峰值性能高达1.102EFlop/s,是第一台突破百亿亿次(E级)计算速度的超级计算机。神威·太湖之光是我国国产性能最强的超级计算机,拥有40960个处理器,共10649600个核,***峰值性能可达125.436PFlops。
伴随着性能的提高,HPC***规模也迅速增长,节点数和组件数迅速增加。HPC***并不是简单的计算资源堆叠,而是节点间的通信和同步以支持各种应用程序的执行。但是这些节点以及***本身都可能遭遇各种故障,比如节点宕机、软件崩溃、硬盘损坏、互连网络中断等,导致程序无法正常运行。因此,HPC***需要具有一定可靠性,***能够保持稳定,不出现故障或者能够快速从故障恢复。可靠性和节点的数量以及单个节点的质量有关。在目前的制造工艺下,单个节点的可靠性已经相对稳定,因此随着HPC***规模的增大,整个***就会越不可靠,发生故障的概率也会增加。
平均无故障时间(Mean Time Between Failures,MTBF)是衡量HPC***可靠性的重要指标。MTBF越高,说明***越可靠,越不容易出现故障。据统计,P级高性能计算***的MTBF约为15小时。考虑到***规模的继续快速增长,Frontier等的E级HPC***的MTBF将只有数个小时甚至更短。这对于HPC上的应用程序是非常不利的,因为它们通常具有长时间运行和大规模进程等特性,在运行过程中更容易遭遇各种软硬件故障而导致程序运行中断。
然而随着程序规模的增长、进程数不断增加,加之异构架构的引入,保存检查点所需的数据量也越来越大。众多进程会产生海量的检查点数据,这不仅导致检查点保存的时间延长,还将对***性能造成负面影响。如果众多进程同时将海量检查点数据保存到共享存储***,I/O子***将面临严重的过载,导致网络拥塞和I/O瓶颈。检查点技术需要进一步优化来提高可扩展性和IO带宽利用率,比如减少检查点数据量、优化存储方式。
对于大规模并行***中的检查点软件来说,减少保存检查点文件过程对I/O子***造成的冲击是实现checkpoint软件可用性的重要指标。从底层来看就是对***共享I/O带宽资源使用的控制。对于使用协调同步通信协议的检查点软件来说,协调性的保证将导致大量进程同时向硬盘写入海量检查点数据,引发对I/O子***的冲击,因此如何能够自适应的根据不同***的综合硬件条件和实时负载状况来动态的确定检查点软件数据相应的最佳写入时机和写入数据量,成为了解决该问题的关键。
针对上述问题,本申请提出一种海量检查点数据的I/O感知自适应写入方法,所述根据进程的数量、存储***的属性设置检查点数据写入的初始状态;在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;针对目标进程,确定目标进程在所述写入周期的写入数据量;在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,并在所述写入周期结束时进行入下一个写入周期;这样,引入反馈调节机制,在写入模块真正执行写入操作之前,周期性的检测当前的硬件使用信息和***负载压力,自适应地调节进程写入I/O***的数据量;将写入操作分散到一个时间区间的多个写入周期中,控制同时进行检查点写入的进程数,从而减少在同一时刻的I/O写入的总操作量,减少多个进程对存储***带宽资源的争用,以此降低I/O***的负载压力,提高I/O***的带宽利用率;这样,通过自适应的调节每个进程的检查点数据的写入时机和写入数据量,使其写入检查数据时能够接近最佳的写入吞吐量,避免了大规模高性能计算***的海量检查点数据的集中写入对存储***所造成的冲击,防止瞬时产生的数量众多的写入操作和庞大数据量超出存储***的负载能力,提高存储***带宽的利用率。
请参照图1,图1示出了本申请实施例所述海量检查点数据的I/O感知自适应写入方法的方法流程图,具体的,所述方法包括以下步骤S101-S104:
S101、根据进程的数量、存储***的属性设置检查点数据写入的初始状态;所述初始状态的初始状态参数包括写入周期;
S102、在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;
S103、针对目标进程,确定目标进程在所述写入周期的写入数据量;
S104、在所述写入周期中,将所述目标进程写入数据量的检查点数据写入存储***,并在所述写入周期结束时进行入下一个写入周期。
在所述步骤S101中,所述存储***,又可以称之为共享存储***,I/O子***,I/O***、共享I/O***等等,所述存储***用于存储进程的海量检查点数据。
所述检查点数据是指将程序运行状态保存至可靠性更高存储介质(如硬盘)的数据,包含进程的内存数据,进程间通信数据,上下文数据等。
在写入硬盘的检查点数据准备完毕后,首先确定检查点数据写入的初始状态;状态参数包含写入周期T,写入周期的写入概率P0,数据块大小S0和写入窗口阈值Sw。
而后,每个用户进程周期性地执行写入硬盘操作,为了减少大量进程写入检查点数据导致的I/O***资源争用,每个进程在每个周期均采用随机方法以一定的写入概率等待被选中进入写入周期。所述写入概率P0表征了每个进程在每个周期被选中的概率。
这里,所述检查点数据写入的初始状态是根据进程的数量、存储***的属性设置的,例如,所述存储***的属性包括磁盘容量,磁盘容量越大,能够同时写入的进程数越多,则每个进程被选中的概率越高,写入概率P0越大;进程的数量越多,则每个进程被选中的概率越低,写入概率P0越小。
所述数据块大小S0是本申请实施例中所述写入数据量的基本单位,以数据块大小S0为基础调整写入数据量。
所述写入窗口阈值Sw表征存储***的硬件条件对每个周期的写入操作的限制,若存储***的硬件资源好,能够抵抗的同时写入的数据量越多,则所述写入窗口阈值Sw越大。
因此,本申请中,根据所述存储***的属性设置检查点数据写入的初始状态,并在后续的步骤中根据所述初始状态进行反馈调节,从而能够自适应的根据不同***的综合硬件条件来动态的调整进行写入操作的进程数和数据量。
本申请实施例中,所述初始状态的初始状态参数包括写入周期还包括初始写入参数;所述初始写入参数,所述初始写入参数由检查点软件给出的预设值确定。所述初始写入参数包括:初始的数据写入量,示例性的,本申请实施例中为一个数据块大小S0;初始的历史写入速率平均值,示例性的,本申请中为第一个写入硬盘测得的写入速率;初始的写入窗口阈值,示例性的,本申请中为Q个数据块(Q为检查点软件的预设值)。
本申请实施例中,设Si为第i个写入数据的写入周期的写入数据量,Vi为第i个写入数据的写入周期测得的写入速率,Vi’为前i个写入数据的写入周期历史写入速率的加权平均值。
在所述步骤S102中,在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同。
本申请实施例中,请参照图2,在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程,包括以下步骤S201-S202:
S201、在进入一个新的写入后周期后,每个进程均通过随机方法生成一随机概率;
S202、选中随机概率小于初始状态参数中写入概率的进程作为目标进程。
这里所述的随机概率即在区间[0,1]生成一个随机数R。
在进入新的一个写入周期后,每个进程均通过随机方法以写入概率P0进行写入操作。若确定不进行写入操作,则该进程在这个写入周期内不进行任何操作。否则在这个写入周期(假设为第i个写入数据的写入周期)内写入数据Si。因此,每一个写入周期都只有大约(P0×100%)的进程进行写入操作,有利于降低大量进程同时写入检查点数据造成的I/O带宽资源的争用。
在进入一个新的写入后周期后,每个进程均通过随机方法生成一随机概率;具体的,本申请实施例中,每个进程均通过随机方法在区间[0,1]生成一个随机数R,若R<P0则进行写入操作,否则不进行写入操作。
如果某一个用户进程连续N个写入周期都没有进行写入操作,则在这一写入周期不通过随机方法直接进行写入操作。本申请实施例中,具体的,在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程,所述方法还包括:
判断是否存在连续N个周期都未被选中进程;其中,所述N为预设周期阈值;
若存在,则确定所述连续N个周期都未被选中进程作为目标进程。
这里,所述N为自然数,例如3个,即连续3个周期都没有进行写入操作,则这一写入周期不通过随机方法直接进行写入操作。
每个进程写入硬盘操作有三个写入状态:加速状态,稳定状态和降速状态。加速状态每个写入周期的写入数据量为上一个周期写入硬盘操作的写入周期的写入数据量的两倍(即指数增长)。稳定状态每个写入周期的写入量为上一个执行写入硬盘操作的写入周期写入量再增加一个数据块S0(即线性增长)。降速状态则相应调整降低写入的数据量和写入窗口阈值。
开始写入时用户进程处于加速状态,初始的写入数据量为一个数据块S0。每个周期写入完毕后需要统计这个周期内的数据写入速率,并与之前历史写入速率加权平均值进行对比,进而相应地调整写入状态,通过写入数据量的动态调整使检查点数据写入时接近最佳的写入速率。因为这个周期内的数据写入速率实际上表征了存储***的实时运行状态,因此,本申请实施例所述方法实质上是根据存储***的实时运行状态进行反馈调节。
在所述步骤S103中,针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量。
具体的,所述根据目标进程在上一周期的写入数据量和/或写入速率进行反馈调节,确定目标进程在所述写入周期的写入数据量。
针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量,包括:
针对目标进程,根据所述目标进程的写入状态和在上一写入周期的写入数据量、初始状态参数中的数据块大小,确定当下写入周期的写入数据量;
其中,所述目标进程的写入状态是在上一写入周期结束时,根据上一写入周期的写入数据量和/或写入速率确定的,所述上一写入周期的写入数据量、写入速率均表征了存储***的实时运行状态。
也就是说,本申请实施例中,根据在上一写入周期结束时,根据上一写入周期的写入数据量和/或写入速率确定目标进程的写入状态,所述写入状态是基于存储***所反馈的实时运行状态所确定的反馈结果,然后根据所述反馈结果调整上一写入周期的写入数据量,得到当下写入周期的写入数据量。
这里,由于本申请实施例是以初始状态参数中包括数据块大小为基本单位的,因此,写入数据量为数据块的个数。
本申请实施例所述的海量检查点数据的I/O感知自适应写入方法中,所述初始状态参数中包括写入窗口阈值;
请参照图3,图3示出了本申请实施例所述的写入状态转换示意图。在上一写入周期结束时,根据上一写入周期的写入数据量或写入速率确定目标进程的写入状态,包括:
当所述目标进程在上一写入周期处于加速状态时,所述上一写入周期的写入数据量大于或等于写入窗口阈值,则调整所述目标进程的写入状态进入稳定状态;
当所述目标进程在上一写入周期处于加速状态或稳定状态时,所述上一写入周期的写入速率小于动态速率阈值,则调整所述目标进程的写入状态进入降速状态;
当所述目标进程在上一写入周期处于减速状态时,若上一周期的写入速率大于或等于动态速率阈值,则调整所述目标进程的写入状态进入稳定状态;若上一周期的写入速率依然小于动态速率阈值,则调整所述目标进程进入加速状态,且写入数据量为初始状态参数中的初始数据量;
其中,所述动态速率阈值是基于上一写入周期之前的历史写入速率平均值确定的。
以上所述为写入状态需要调整的过程,在实际的写入过程中,所述目标进程会保持加速状态直至写入数据量大于或等于写入窗口阈值,以及保持稳定状态直至写入速率小于动态速率阈值。
也就是说,在上一写入周期结束时,根据上一写入周期的写入数据量或写入速率确定目标进程的写入状态,还包括:
当所述目标进程在上一写入周期处于加速状态时,所述上一写入周期的写入数据量小于写入窗口阈值,则所述目标进程的写入状态保持加速状态;
当所述目标进程在上一写入周期处于稳定状态时,所述上一写入周期的写入速率大于或等于动态速率阈值,则所述目标进程的写入状态保持稳定状态。
请参照图3,本申请实施例表中,设定所述写入窗口阈值中为Sw;在加速状态,若上一写入周期的写入数据量Si大于或等于写入窗口阈值即:
Si≥Sw,
则进入稳定状态。
所述动态速率阈值,则历史写入速率加权平均值Vi-1’偏差的最小值,所述历史写入速率加权平均值Vi-1’偏差的最小值的为(1-ε)Vi-1’,其中ε为预设的写入速率偏差。
在加速状态或稳定状态,若上一写入周期的写入速率Vi小于动态速率阈值,即:
Vi<(1-ε)Vi-1’,
则进入降速状态。
这里,上一写入周期为第i个写入周期,所述历史写入速率加权平均值Vi-1’为i-1个写入周期写入速率加权平均值。
本申请实施例中,根据所述目标进程的写入状态和在上一写入周期的写入数据量和数据块大小,确定当下写入周期的写入数据量,包括:
当所述目标进程的写入状态为加速状态时,确定当下写入周期的写入数据量为上一周期的写入数据量的两倍;
当所述目标进程的写入状态为稳定状态时,确定当下写入周期的写入数据量比上一周期的写入数据量多预设数目个数据块;
当所述目标进程的写入状态为初次降速状态,确定当下写入周期的写入数据量为上一周期的写入数据量的一半;
当所述目标进程的写入状态为二次降速状态,确定当下写入周期的写入数据量为初始状态参数中的初始的写入数据量。
需要说明的是:当所述目标进程第一次进入写入状态时,其写入状态为加速状态,写入数据量为初始状态参数中的初始的写入数据量。
请参照图3,本申请实施例中,所述初始状态参数中的初始的写入数据量为1个数据块。
具体的说,在每次写入时,首先确定这一写入周期的写入数据量Si。若用户进程处于加速状态,则写入数据量为上一写入周期写入数据量的两倍(指数增长)。
即:Si=2Si-1;
其中,所述Si表征第i个写入周期的写入数据量,Si-1表征第i-1个写入周期的写入数据量。
若用户进程处于稳定状态,则这一写入周期的写入数据量比上一写入周期写入数据量多预设数目个数据块(线性增长)。本申请实施例中,具体为增加一个数据块,即:
Si=Si-1+S0;
所述Si表征第i个写入周期的写入数据量,Si-1表征第i-1个写入周期的写入数据量。
若用户处于若用户进程处于降速状态,则根据探测到的速率相应的调整写入数据量,具体的,所述Si=Si-1/2;
所述Si表征第i个写入周期的写入数据量,Si-1表征第i-1个写入周期的写入数据量。
本申请实施例中,若用户处于若用户进程处于降速状态,则在根据探测到的速率相应的调整写入数据量的同时,还需要调整写入窗口阈值。
本申请实施例中,当所述目标进程的写入状态为降速状态时,所述方法还包括:
调整所述写入窗口阈值为上一周期的写入数据量的一半。
若用户进程处于下降状态,说明进程的写入速率很低,数据拥堵严重,则需要调整写入窗口阈值,降低全部进程的写入数据的增长速度。
本申请实施例所述的海量检查点数据的I/O感知自适应写入方法,所述方法还包括:
在上一写入周期结束时,在确定目标进程的写入状态后,基于所述上一写入周期的写入速率,更新所述历史写入速率平均值。
基于所述上一写入周期的写入速率,更新所述历史写入速率平均值,包括:
基于每一周期的历史写入速率、每一周期的权重,计算所述历史写入速率平均值;其中,越晚的周期对应的权重越大。
需要说明的是,确定当下写入周期的写入状态,是在上一写入周期写入操作执行完毕后进行的,换句话所,当一个写入周期执行完毕后,基于这一写入周期中的写入速率和动态速率阈值的对比结果,写入数据量和写入窗口阈值的对比结果,确定下一个写入周期的写入状态。
以及,基于这一写入周期中的写入速率,更新历史写入速率平均值。
具体的,更新历史写入速率加权平均值Vi’的计算方法为:
Vi’=αVi+(1-α)Vi-1’;
这里,所述Vi为第i个写入周期的写入速率;Vi-1’为i-1个写入周期写入速率加权平均值;Vi’为更新后的历史写入速率加权平均值,也即i个写入周期写入速率加权平均值,α为加权权值。
展开所述Vi’=αVi+(1-α)Vi-1’,可以发现,越晚的历史写入速率,加权的权值越大,因而与测出的实时写入速率具有可比性。
S104、在所述写入周期中,将所述目标进程写入数据量的检查点数据写入存储***,并在所述写入周期结束时进行入下一个写入周期。
也就是说,在所述目标进程写入数据量的检查点数据写入存储***后,计算写入周期中的写入速率,并基于所述写入速率和写入数据量确定下一个写入周期的写入状态,从而根据存储***在所述写入周期的实时运行状态进行反馈调节,确定目标进程在下一个写入周期的写入数据量。
这里,目标进程在下一个写入周期可能被选中,则可能不被选中,只有当所述目标进程被再次选中时,才执行写入操作,若未被选中则处于等待状态,不进行写入操作,也无需重新确定写入状态和写入数据量等。
基于同一发明构思,本申请实施例中还提供了与海量检查点数据的I/O感知自适应写入方法对应的海量检查点数据的I/O感知自适应写入装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参照图4,图4示出了本申请实施例所述海量检查点数据的I/O感知自适应写入装置的结构示意图,所述装置包括:
设置模块401,用于根据进程的数量、存储***的属性设置检查点数据写入的初始状态;所述初始状态的初始状态参数包括写入周期;
选择模块402,用于在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;
确定模块403,用于针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量;
写入模块404,用于在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,并在所述写入周期结束时进行入下一个写入周期。
本申请提出一种海量检查点数据的I/O感知自适应写入装置,所述根据进程的数量、存储***的属性设置检查点数据写入的初始状态;在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;针对目标进程,确定目标进程在所述写入周期的写入数据量;在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,并在所述写入周期结束时进行入下一个写入周期;这样,引入反馈调节机制,在写入模块真正执行写入操作之前,周期性的检测当前的硬件使用信息和***负载压力,自适应地调节进程写入I/O***的数据量;将写入操作分散到一个时间区间的多个写入周期中,控制同时进行检查点写入的进程数,从而减少在同一时刻的I/O写入的总操作量,减少多个进程对存储***带宽资源的争用,以此降低I/O***的负载压力,提高I/O***的带宽利用率;这样,通过自适应的调节每个进程的检查点数据的写入时机和写入数据量,使其写入检查数据时能够接近最佳的写入吞吐量,避免了大规模高性能计算***的海量检查点数据的集中写入对存储***所造成的冲击,防止瞬时产生的数量众多的写入操作和庞大数据量超出存储***的负载能力,提高存储***带宽的利用率。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述初始状态的初始状态参数中还包括写入概率;
所述选择模块,在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程时,具体用于:
在进入一个新的写入后周期后,每个进程均通过随机方法生成一随机概率;
选中随机概率小于初始状态参数中写入概率的进程作为目标进程。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述选择模块,在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程时,还用于:
判断是否存在连续N个周期都未被选中进程;其中,所述N为预设周期阈值;
若存在,则确定所述连续N个周期都未被选中进程作为目标进程。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述确定模块,在针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量时,具体用于:
针对目标进程,根据所述目标进程的写入状态和在上一写入周期的写入数据量,确定当下写入周期的写入数据量;
其中,所述目标进程的写入状态是在上一写入周期结束时,根据上一写入周期的写入数据量或写入速率确定的,所述上一写入周期的写入数据量、写入速率均表征了存储***的实时运行状态。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述初始状态参数中包括写入窗口阈值;
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述确定模块,在在上一写入周期结束时,根据上一写入周期的写入数据量或写入速率确定目标进程的写入状态时,具体用于:
当所述目标进程在上一写入周期处于加速状态时,所述上一写入周期的写入数据量大于或等于写入窗口阈值,则调整所述目标进程的写入状态进入稳定状态;
当所述目标进程在上一写入周期处于加速状态或稳定状态时,所述上一写入周期的写入速率小于动态速率阈值,则调整所述目标进程的写入状态进入降速状态;
当所述目标进程在上一写入周期处于减速状态时,若上一周期的写入速率大于或等于动态速率阈值,则调整所述目标进程的写入状态进入稳定状态;若上一周期的写入速率依然小于动态速率阈值,则调整所述目标进程进入加速状态,且写入数据量为初始状态参数中的初始数据量;
其中,所述动态速率阈值是基于上一写入周期之前的历史写入速率平均值动态确定的。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述确定模块,还用于:
在上一写入周期结束时,在确定目标进程的写入状态后,基于所述上一写入周期的写入速率,更新所述历史写入速率平均值。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述确定模块,在基于所述上一写入周期的写入速率,更新所述历史写入速率平均值时,具体用于:
基于每一周期的历史写入速率、每一周期的权重,计算所述历史写入速率平均值;其中,越晚的周期对应的权重越大。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述确定模块,在根据所述目标进程的写入状态和在上一写入周期的写入数据量和数据块大小,确定当下写入周期的写入数据量,包括:
当所述目标进程的写入状态为加速状态时,确定当下写入周期的写入数据量为上一周期的写入数据量的两倍;
当所述目标进程的写入状态为稳定状态时,确定当下写入周期的写入数据量比上一周期的写入数据量多预设数目个数据块;
当所述目标进程的写入状态为初次降速状态,确定当下写入周期的写入数据量为上一周期的写入数据量的一半;
当所述目标进程的写入状态为二次降速状态,确定当下写入周期的写入数据量为初始状态参数中的初始的写入数据量。
在一些实施例中,所述的海量检查点数据的I/O感知自适应写入装置中,所述确定模块还用于,当所述目标进程的写入状态为降速状态时,调整所述写入窗口阈值为上一周期的写入数据量的一半。
基于同一发明构思,本申请实施例中还提供了与海量检查点数据的I/O感知自适应写入方法对应的电子设备,由于本申请实施例中的电子设备解决问题的原理与本申请实施例上述方法相似,因此电子设备的实施可以参见方法的实施,重复之处不再赘述。
请参照图5,图5示出了本申请实施例所述电子设备的结构示意图,所述电子设备500,包括:处理器502、存储器501和总线,所述存储器501存储有所述处理器502可执行的机器可读指令,当电子设备500运行时,所述处理器502与所述存储器501之间通过总线通信,所述机器可读指令被所述处理器502执行时执行所述的海量检查点数据的I/O感知自适应写入方法的步骤。
本申请实施中,所述方法是为了解决众多计算节点和存储设备组成的集群的海量检查点数据的存储,程序规模大,进程数量多,因此,优选的,所述处理器中包括多个处理模块,或者,所述处理器为多个子处理器组成的集群,从而保证运算效率。
基于同一发明构思,本申请实施例中还提供了与海量检查点数据的I/O感知自适应写入方法对应的计算机可读存储介质,由于本申请实施例中的计算机可读存储介质解决问题的原理与本申请实施例上述方法相似,因此计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行所述的海量检查点数据的I/O感知自适应写入方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备、多台计算设备或者多个计算节点组成的集群执行本申请各个实施例所述方法的全部或部分步骤,所述计算设备或计算节点可以是个人计算机,平台服务器,或者网络设备等。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种海量检查点数据的I/O感知自适应写入方法,其特征在于,所述方法包括:
根据进程的数量、存储***的属性设置检查点数据写入的初始状态;所述初始状态的初始状态参数包括写入周期;
在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;
针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量;
在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,并在所述写入周期结束时进行入下一个写入周期。
2.根据权利要求1所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,所述初始状态的初始状态参数中还包括写入概率;
在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程,包括:
在进入一个新的写入后周期后,每个进程均通过随机方法生成一随机概率;
选中随机概率小于初始状态参数中写入概率的进程作为目标进程。
3.根据权利要求2所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,在进入一个写入周期时,从全部进程中确定出所述写入周期对应的目标进程,还包括:
判断是否存在连续N个周期都未被选中进程;其中,所述N为预设周期阈值;
若存在,则确定所述连续N个周期都未被选中进程作为目标进程。
4.根据权利要求1所述的海量检查点数据的I/O感知自适应写入方法,其特征在于:
针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量,包括:
针对目标进程,根据所述目标进程的写入状态和在上一写入周期的写入数据量,确定当下写入周期的写入数据量;
其中,所述目标进程的写入状态是在上一写入周期结束时,根据上一写入周期的写入数据量或写入速率确定的,所述上一写入周期的写入数据量、写入速率均表征了存储***的实时运行状态。
5.根据权利要求4所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,所述初始状态参数中包括写入窗口阈值;
在上一写入周期结束时,根据上一写入周期的写入数据量或写入速率确定目标进程的写入状态,包括:
当所述目标进程在上一写入周期处于加速状态时,所述上一写入周期的写入数据量大于或等于写入窗口阈值,则调整所述目标进程的写入状态进入稳定状态;
当所述目标进程在上一写入周期处于加速状态或稳定状态时,所述上一写入周期的写入速率小于动态速率阈值,则调整所述目标进程的写入状态进入降速状态;
当所述目标进程在上一写入周期处于减速状态时,若上一周期的写入速率大于或等于动态速率阈值,则调整所述目标进程的写入状态进入稳定状态;若上一周期的写入速率依然小于动态速率阈值,则调整所述目标进程进入加速状态,且写入数据量为初始状态参数中的初始数据量;
其中,所述动态速率阈值是基于上一写入周期之前的历史写入速率平均值动态确定的。
6.根据权利要求5所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,所述方法还包括:
在上一写入周期结束时,在确定目标进程的写入状态后,基于所述上一写入周期的写入速率,更新所述历史写入速率平均值。
7.根据权利要求6所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,基于所述上一写入周期的写入速率,更新所述历史写入速率平均值,包括:
基于每一周期的历史写入速率、每一周期的权重,计算所述历史写入速率平均值;其中,越晚的周期对应的权重越大。
8.根据权利要求5所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,根据所述目标进程的写入状态和在上一写入周期的写入数据量和数据块大小,确定当下写入周期的写入数据量,包括:
当所述目标进程的写入状态为加速状态时,确定当下写入周期的写入数据量为上一周期的写入数据量的两倍;
当所述目标进程的写入状态为稳定状态时,确定当下写入周期的写入数据量比上一周期的写入数据量多预设数目个数据块;
当所述目标进程的写入状态为初次降速状态,确定当下写入周期的写入数据量为上一周期的写入数据量的一半;
当所述目标进程的写入状态为二次降速状态,确定当下写入周期的写入数据量为初始状态参数中的初始的写入数据量。
9.根据权利要求5所述的海量检查点数据的I/O感知自适应写入方法,其特征在于,当所述目标进程的写入状态为降速状态时,所述方法还包括:
调整所述写入窗口阈值为上一周期的写入数据量的一半。
10.一种海量检查点数据的I/O感知自适应写入装置,其特征在于,所述装置包括:
设置模块,用于根据进程的数量、存储***的属性设置检查点数据写入的初始状态;所述初始状态的初始状态参数包括写入周期;
选择模块,用于在进入一个写入周期时,从全部进程中选出所述写入周期对应的目标进程;不同写入周期的对应的目标进程不同;
确定模块,用于针对目标进程,根据存储***的实时运行状态进行反馈调节,确定目标进程在所述写入周期的写入数据量;
写入模块,用于在所述写入周期中,将所述目标进程写入数据量的检查点数据写入共享存储***,并在所述写入周期结束时进行入下一个写入周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310865203.6A CN117075800A (zh) | 2023-07-13 | 2023-07-13 | 一种海量检查点数据的i/o感知自适应写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310865203.6A CN117075800A (zh) | 2023-07-13 | 2023-07-13 | 一种海量检查点数据的i/o感知自适应写入方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117075800A true CN117075800A (zh) | 2023-11-17 |
Family
ID=88703235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310865203.6A Pending CN117075800A (zh) | 2023-07-13 | 2023-07-13 | 一种海量检查点数据的i/o感知自适应写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117075800A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873789A (zh) * | 2024-03-13 | 2024-04-12 | 之江实验室 | 一种基于分段量化的检查点写入方法及装置 |
-
2023
- 2023-07-13 CN CN202310865203.6A patent/CN117075800A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117873789A (zh) * | 2024-03-13 | 2024-04-12 | 之江实验室 | 一种基于分段量化的检查点写入方法及装置 |
CN117873789B (zh) * | 2024-03-13 | 2024-05-10 | 之江实验室 | 一种基于分段量化的检查点写入方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106648904B (zh) | 一种流式数据处理自适应速率控制方法 | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
CN117075800A (zh) | 一种海量检查点数据的i/o感知自适应写入方法 | |
CN103595651B (zh) | 基于分布式的数据流处理方法和*** | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
CN110046048B (zh) | 一种基于工作量自适应快速重分配的负载均衡方法 | |
CN103699433B (zh) | 一种于Hadoop平台中动态调整任务数目的方法及*** | |
CN102857577A (zh) | 一种集群存储自动负载均衡的***及方法 | |
CN113535409B (zh) | 一种面向能耗优化的无服务器计算资源分配*** | |
US20220413965A1 (en) | Data recovery method, apparatus and device, and readable storage medium | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整***、方法 | |
CN110990155A (zh) | 一种面向大规模安全监控的参数通信方法 | |
CN111142942A (zh) | 窗口数据的处理方法、装置、服务器及存储介质 | |
CN114900525B (zh) | 一种偏斜数据流的双层协作负载均衡方法及存储介质 | |
WO2024077881A1 (zh) | 神经网络训练的调度方法、***及计算机可读存储介质 | |
CN112181894B (zh) | 一种基于申威众核处理器的核组内分组自适应调整运行方法 | |
CN116663639B (zh) | 一种梯度数据同步方法、***、装置及介质 | |
CN115396377A (zh) | 对象存储的服务质量优化方法、装置、设备及存储介质 | |
CN113467908B (zh) | 任务执行方法、装置、计算机可读存储介质及终端设备 | |
CN108491159B (zh) | 一种基于随机延迟缓解i/o瓶颈的大规模并行***检查点数据写入方法 | |
CN114297002A (zh) | 一种基于对象存储的海量数据备份方法及*** | |
CN113535387A (zh) | 一种异构感知的gpu资源分配与调度方法及*** | |
CN111580950A (zh) | 一种提升云可靠性的自适应反馈资源调度方法 | |
CN115879543B (zh) | 一种模型训练方法、装置、设备、介质及*** | |
CN110850957A (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 |