CN117591316A - 追踪存储io执行情况的方法、装置、设备及存储介质 - Google Patents
追踪存储io执行情况的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117591316A CN117591316A CN202311694799.4A CN202311694799A CN117591316A CN 117591316 A CN117591316 A CN 117591316A CN 202311694799 A CN202311694799 A CN 202311694799A CN 117591316 A CN117591316 A CN 117591316A
- Authority
- CN
- China
- Prior art keywords
- rpc
- tracking
- tracker
- time stamp
- execution
- 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 70
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 5
- 101100473121 Dictyostelium discoideum polr3b gene Proteins 0.000 description 4
- 101100473126 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rpc2 gene Proteins 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 101100091545 Dictyostelium discoideum polr3a gene Proteins 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种追踪存储IO执行情况的方法、装置、设备及存储介质,涉及数据存储技术领域,其中,追踪存储IO执行情况的方法包括:当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;在rpc的关键流程插入时间戳和关键流程名称;记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。本申请能有效的监控分布式存储中的IO处理情况,保留问题定位信息,增加了分布式存储系统的可定位性。
Description
技术领域
本申请涉及数据存储技术领域,具体涉及一种追踪存储IO执行情况的方法、装置、设备及存储介质。
背景技术
分布式存储系统随着服务器数量的增加,故障率也随之上升,为了保证服务器出现故障的情况下系统仍然可用,一般的做法时把一个数据分成多份储存在不同的服务器中,根据需求使用不同的冗余策略来保证数据的可靠性和容错性。
以三副本写为例,将数据复制三份副本存在三个不同的节点上,具有一个主副本,两个从副本。客户端Client发送RPC(Remote Procedure Call,远程过程调用)请求(IO)到服务器的主副本节点上,再由主副本经网络分发到另外两个从副本中。
为了辅助定位op异常、超时等bug,则需要对IO(Input/Output,输入/输出)路径上的时延进行监控,现有的IO时延监控方法大多是监控某个流程的平均时延,存在不能精确到具体IO、不能跨界点监控等缺陷;若存在平均时延符合预期但某个IO执行时间超时的情况,则不能准确的定位其超时原因。
发明内容
本申请提供一种追踪存储IO执行情况的方法、装置、设备及存储介质,其能有效的监控分布式存储中的IO处理情况,保留问题定位信息,增加了分布式存储系统的可定位性。
第一方面,本申请实施例提供一种追踪存储IO执行情况的方法,所述追踪存储IO执行情况的方法包括:
当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;
在rpc的关键流程插入时间戳和关键流程名称;
记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
结合第一方面,在一种实施方式中,所述记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型计算rpc处理时间是否超时,包括:
判断reply时间戳和起始时间戳的差值是否超出基于消息类型设定的时间阈值;
若超出设定的时间阈值,则判定rpc处理时间超时。
结合第一方面,在一种实施方式中,根据不同的消息类型设置不同的时间阈值。
结合第一方面,在一种实施方式中,分配tracker时,在tracker pool中取出tracker,并将tracker加入inflight队列。
结合第一方面,在一种实施方式中,若tracker pool为空,则通过alloc函数申请tracker,并在释放时将申请的tracker放入tracker pool中。
结合第一方面,在一种实施方式中,若rpc陷入死循环或主动切出不继续处理,利用看门狗每隔一段时间检测inflight队列rpc的起始时间戳,若超阈值未处理,则将信息输出到日志并进行故障恢复报警。
结合第一方面,在一种实施方式中,当rpc处理超时时,将记录的rpc关键流程时间戳输出到日志并报警。
第二方面,本申请实施例提供了一种追踪存储IO执行情况的装置,所述追踪存储IO执行情况的装置包括:
分配模块,其用于当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;
插入模块,其用于在rpc的关键流程插入时间戳和关键流程名称;
判断模块,其用于记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
定位模块,其用于当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
第三方面,本申请实施例提供了一种追踪存储IO执行情况的设备,所述追踪存储IO执行情况的设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被所述处理器执行时,实现如上述任一种所述的追踪存储IO执行情况的方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被处理器执行时,实现如上述任一种所述的追踪存储IO执行情况的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请中的追踪存储IO执行情况的方法,其当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;在rpc的关键流程插入时间戳和关键流程名称;记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
本申请中的方案在每个线程上维护一个tracker的内存池,用来存放追踪器的实例,可以减少内存申请释放,减少cpu和内存的消耗。以rpc id为唯一标识符,不同线程使用不同的tracker跟踪,实现免锁;另外,以rpc id为唯一标识符,还可以跨节点追踪时延。
附图说明
图1为本申请追踪存储IO执行情况的方法一实施例的流程示意图;
图2为本申请tracker分配的流程图;
图3为本申请节点rpc处理流程图;
图4为本申请追踪存储IO执行情况的装置一实施例的功能模块示意图;
图5为本申请实施例方案中涉及的追踪存储IO执行情况的设备的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。术语“第一”、“第二”和“第三”等描述,是用于区分不同的对象等,其不代表先后顺序,也不限定“第一”、“第二”和“第三”是不同的类型。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本申请实施例描述的一些流程中,包含了按照特定顺序出现的多个操作或步骤,但是应该理解,这些操作或步骤可以不按照其在本申请实施例中出现的顺序来执行或并行执行,操作的序号仅用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作或步骤可以按顺序执行或并行执行,并且这些操作或步骤可以进行组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
第一方面,本申请实施例提供一种追踪存储IO执行情况的方法。
一实施例中,参照图1,图1为本申请追踪存储IO执行情况的方法一实施例的流程示意图。如图1所示,追踪存储IO执行情况的方法包括:
S1、当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型(rpc type)和起始时间戳记录到tracker中。
参见图2所示,在本实施例中,分配tracker时,采用的方式是在tracker pool中取出tracker,并将tracker加入inflight队列。若tracker pool为空,则通过alloc函数申请tracker,在释放时将申请的tracker放入tracker pool中,从而可以减少内存申请释放次数。
参见图3所示,本实施例中的节点包括主节点和从节点,主节点接收Client写主op发送的rpc1,会分配tracker1记录rpc1 id至tracker1。随后,主节点分发从副本写op,发送rpc2,此时从节点接收从副本写rpc2,分配tracker2记录rpc2 id至tracker2。值得说明的是,主节点的tracker1也会记录rpc2 id,以保证和从节点的对接。
可以理解的是,对于多个从节点的情形,比如三副本写的情形,其具有两个从节点,两个从节点的处理方式类似,参照图3和上述描述处理即可,本发明在此不做赘述。
S2、在rpc的关键流程插入时间戳和关键流程名称。
本实施例中所指的关键流程,指的是rpc处理过程中常常会经历的流程,其也是本申请的重点追踪对象,关键流程比较多(细分有几十个),以图3中三个主要流程举例,在分布式存储收到一个写op后:
1、需要准备op上下文信息(context,里面保存op所在对象,所在地址及偏移,主从分片分布等信息);
2、需要将数据写入物理硬盘中;
3、需要更新对象的元数据信息,包括此op对应硬盘上的位置,事务等。
每个关键流程前后会存在时间戳,若op超时,根据这些时间戳就能计算出是哪个流程卡住。
此外,时间戳可以使用整型压缩算法减少内存,关键流程名称在节点初始化时便用index表示,使用压缩字典算法字段减少内存。
S3、记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时。
具体而言,步骤S3包括:
S31、判断reply时间戳和起始时间戳的差值是否超出基于消息类型设定的时间阈值;
S33、若超出设定的时间阈值,则判定rpc处理时间超时。
以图3为例进行说明,主节点对应的是时间戳1、2、3、9、10和11,从节点对应的是时间戳4、5、6、7和8。主节点和从节点分别设置时间阈值timeout1和timeout2。
对于从节点,若stamp8-stamp4>timeout2,则判定rpc处理时间超时。
对于主节点,若stamp11-stamp1>timeout1,则判定rpc处理时间超时。
可以理解的是,tracker1中会记录从副本的rpc2的id,通过此id可以在从副本所在节点找到超时信息,若没有则说明写从副本流程没超时,问题出在主op其他流程。
值得说明的是,一些实施例中,不同类型的消息可定制化自己的超时时间,也即可以根据不同的消息类型设置不同的时间阈值。若rpc type为update,消息需要多个节点处理后再返回。
S4、当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
在本实施例中,当rpc处理超时时,会将记录的rpc关键流程时间戳输出到日志并报警。
比如,在进行追踪时,若产生超时报警,定位超时原因是从副本处理时间过长,可以通过从副本唯一标识符rpc id,到其所在节点查找从副本tracker打印信息,则可以追踪跨节点处理的消息的流程,辅助问题定位。
此外,若存在bug或系统故障等原因,rpc在某一阶段陷入死循环或主动切出不继续处理,可以利用看门狗每隔一段时间检测tracker inflight队列rpc的起始时间戳,若超阈值未处理,可将其信息输出到日志并进行故障恢复报警等处理。
具体而言,在开启看门狗后,会遍历tracker inflight队列,然后通过tracker起始时间戳判断是否超时,如果未超时,则看门狗休眠,如果超时,则dump tracker定位信息,上报告警。
综上所述,本申请中的追踪存储IO执行情况的方法,其当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;在rpc的关键流程插入时间戳和关键流程名称;记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
本申请中的方案在每个线程上维护一个tracker的内存池,用来存放追踪器的实例,可以减少内存申请释放,减少cpu和内存的消耗。以rpc id为唯一标识符,不同线程使用不同的tracker跟踪,实现免锁;另外,以rpc id为唯一标识符,还可以跨节点追踪时延。从而能够将每个IO执行路径上关键节点的时延记录在内存上,在IO异常时自动dump出来,用来辅助定位。此外,时间戳,关键点信息,点位名称及含义使用压缩算法压缩字段,还可以减少内存消耗。
第二方面,本申请实施例还提供一种追踪存储IO执行情况的装置。
一实施例中,参照图4,图4为本申请追踪存储IO执行情况的装置一实施例的功能模块示意图。如图4所示,追踪存储IO执行情况的装置包括:
分配模块,其用于当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;
插入模块,其用于在rpc的关键流程插入时间戳和关键流程名称;
判断模块,其用于记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
定位模块,其用于当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
进一步地,一实施例中,所述分配模块记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型计算rpc处理时间是否超时,包括:
判断reply时间戳和起始时间戳的差值是否超出基于消息类型设定的时间阈值;
若超出设定的时间阈值,则判定rpc处理时间超时。
进一步地,一实施例中,所述分配模块根据不同的消息类型设置不同的时间阈值。
进一步地,一实施例中,所述分配模块分配tracker时,在tracker pool中取出tracker,并将tracker加入inflight队列。
进一步地,一实施例中,所述分配模块还用于:
若tracker pool为空,则通过alloc函数申请tracker,并在释放时将申请的tracker放入tracker pool中。
进一步地,一实施例中,所述定位模块还用于:
若rpc陷入死循环或主动切出不继续处理,利用看门狗每隔一段时间检测inflight队列rpc的起始时间戳,若超阈值未处理,则将信息输出到日志并进行故障恢复报警。
进一步地,一实施例中,所述定位模块还用于:
当rpc处理超时时,将记录的rpc关键流程时间戳输出到日志并报警。
其中,上述追踪存储IO执行情况的装置中各个模块的功能实现与上述追踪存储IO执行情况的方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
综上所述,本申请中的追踪存储IO执行情况的装置,其包括分配模块、插入模块、判断模块和定位模块。分配模块用于当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;插入模块用于在rpc的关键流程插入时间戳和关键流程名称;判断模块用于记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;定位模块用于当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
本申请中的方案在每个线程上维护一个tracker的内存池,用来存放追踪器的实例,可以减少内存申请释放,减少cpu和内存的消耗。以rpc id为唯一标识符,不同线程使用不同的tracker跟踪,实现免锁;另外,以rpc id为唯一标识符,还可以跨节点追踪时延。从而能够将每个IO执行路径上关键节点的时延记录在内存上,在IO异常时自动dump出来,用来辅助定位。此外,时间戳,关键点信息,点位名称及含义使用压缩算法压缩字段,还可以减少内存消耗。
第三方面,本申请实施例提供一种追踪存储IO执行情况的设备,追踪存储IO执行情况的设备可以是个人计算机(personal computer,PC)、笔记本电脑、服务器等具有数据处理功能的设备。
参照图5,图5为本申请实施例方案中涉及的追踪存储IO执行情况的设备的硬件结构示意图。本申请实施例中,追踪存储IO执行情况的设备可以包括处理器、存储器、通信接口以及通信总线。
其中,通信总线可以是任何类型的,用于实现处理器、存储器以及通信接口互连。
通信接口包括输入/输出(input/output,I/O)接口、物理接口和逻辑接口等用于实现追踪存储IO执行情况的设备内部的器件互连的接口,以及用于实现追踪存储IO执行情况的设备与其他设备(例如其他计算设备或用户设备)互连的接口。物理接口可以是以太网接口、光纤接口、ATM接口等;用户设备可以是显示屏(Display)、键盘(Keyboard)等。
存储器可以是各种类型的存储介质,例如随机存取存储器(randomaccessmemory,RAM)、只读存储器(read-only memory,ROM)、非易失性RAM(non-volatileRAM,NVRAM)、闪存、光存储器、硬盘、可编程ROM(programmable ROM,PROM)、可擦除PROM(erasable PROM,EPROM)、电可擦除PROM(electrically erasable PROM,EEPROM)等。
处理器可以是通用处理器,通用处理器可以调用存储器中存储的追踪存储IO执行情况的程序,并执行本申请实施例提供的追踪存储IO执行情况的方法。例如,通用处理器可以是中央处理器(central processing unit,CPU)。其中,追踪存储IO执行情况的程序被调用时所执行的方法可参照本申请追踪存储IO执行情况的方法的各个实施例,此处不再赘述。
本领域技术人员可以理解,图5中示出的硬件结构并不构成对本申请的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
第四方面,本申请实施例还提供一种计算机可读存储介质。
本申请计算机可读存储介质上存储有追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被处理器执行时,实现如上述的追踪存储IO执行情况的方法的步骤。
其中,追踪存储IO执行情况的程序被执行时所实现的方法可参照本申请追踪存储IO执行情况的方法的各个实施例,此处不再赘述。
需要说明的是,上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种追踪存储IO执行情况的方法,其特征在于,所述追踪存储IO执行情况的方法包括:
当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpcid、消息类型和起始时间戳记录到tracker中;
在rpc的关键流程插入时间戳和关键流程名称;
记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
2.如权利要求1所述的追踪存储IO执行情况的方法,其特征在于:所述记录节点rpcreply时的reply时间戳,并根据起始时间戳和消息类型计算rpc处理时间是否超时,包括:
判断reply时间戳和起始时间戳的差值是否超出基于消息类型设定的时间阈值;
若超出设定的时间阈值,则判定rpc处理时间超时。
3.如权利要求2所述的追踪存储IO执行情况的方法,其特征在于:
根据不同的消息类型设置不同的时间阈值。
4.如权利要求1所述的追踪存储IO执行情况的方法,其特征在于:
分配tracker时,在tracker pool中取出tracker,并将tracker加入tracker inflight队列。
5.如权利要求4所述的追踪存储IO执行情况的方法,其特征在于:
若tracker pool为空,则通过alloc函数申请tracker,并在释放时将申请的tracker放入tracker pool中。
6.如权利要求4所述的追踪存储IO执行情况的方法,其特征在于:
若rpc陷入死循环或主动切出不继续处理,利用看门狗每隔一段时间检测trackerinflight队列rpc的起始时间戳,若超阈值未处理,则将信息输出到日志并进行故障恢复报警。
7.如权利要求1所述的追踪存储IO执行情况的方法,其特征在于:
当rpc处理超时时,将记录的rpc关键流程时间戳输出到日志并报警。
8.一种追踪存储IO执行情况的装置,其特征在于,所述追踪存储IO执行情况的装置包括:
分配模块,其用于当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;
插入模块,其用于在rpc的关键流程插入时间戳和关键流程名称;
判断模块,其用于记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
定位模块,其用于当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
9.一种追踪存储IO执行情况的设备,其特征在于,所述追踪存储IO执行情况的设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被所述处理器执行时,实现如权利要求1至7中任一项所述的追踪存储IO执行情况的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被处理器执行时,实现如权利要求1至7中任一项所述的追踪存储IO执行情况的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311694799.4A CN117591316A (zh) | 2023-12-08 | 2023-12-08 | 追踪存储io执行情况的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311694799.4A CN117591316A (zh) | 2023-12-08 | 2023-12-08 | 追踪存储io执行情况的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591316A true CN117591316A (zh) | 2024-02-23 |
Family
ID=89916650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311694799.4A Pending CN117591316A (zh) | 2023-12-08 | 2023-12-08 | 追踪存储io执行情况的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591316A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924195A (zh) * | 2018-06-20 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种单向心跳机制实现方法、装置、设备及系统 |
CN109831351A (zh) * | 2018-12-29 | 2019-05-31 | 深圳云天励飞技术有限公司 | 链路跟踪方法、装置、终端及存储介质 |
US20210303377A1 (en) * | 2020-03-31 | 2021-09-30 | Samsung Electronics Co., Ltd. | System and method for remote procedure call for key-value target over non-volatile memory express over fabrics |
CN114389970A (zh) * | 2021-12-03 | 2022-04-22 | 浙江时空道宇科技有限公司 | 一种链路监控方法及装置 |
CN115834699A (zh) * | 2021-09-16 | 2023-03-21 | 广州汽车集团股份有限公司 | 一种服务调用链跟踪实现方法及系统 |
-
2023
- 2023-12-08 CN CN202311694799.4A patent/CN117591316A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924195A (zh) * | 2018-06-20 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种单向心跳机制实现方法、装置、设备及系统 |
CN109831351A (zh) * | 2018-12-29 | 2019-05-31 | 深圳云天励飞技术有限公司 | 链路跟踪方法、装置、终端及存储介质 |
US20210303377A1 (en) * | 2020-03-31 | 2021-09-30 | Samsung Electronics Co., Ltd. | System and method for remote procedure call for key-value target over non-volatile memory express over fabrics |
CN115834699A (zh) * | 2021-09-16 | 2023-03-21 | 广州汽车集团股份有限公司 | 一种服务调用链跟踪实现方法及系统 |
CN114389970A (zh) * | 2021-12-03 | 2022-04-22 | 浙江时空道宇科技有限公司 | 一种链路监控方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11269718B1 (en) | Root cause detection and corrective action diagnosis system | |
US8082471B2 (en) | Self healing software | |
US8572044B2 (en) | Nested recovery scope management for stateless recovery agents | |
US20070038896A1 (en) | Call-stack pattern matching for problem resolution within software | |
US7624309B2 (en) | Automated client recovery and service ticketing | |
JP2006031109A (ja) | 管理システム及び管理方法 | |
US20130198134A1 (en) | Online verification of a standby database in log shipping physical replication environments | |
CN113505012B (zh) | 一种消息队列的处理方法、介质、设备和系统 | |
CN108845866B (zh) | 处理分布式事务的方法和装置 | |
WO2018109825A1 (ja) | バージョン管理システムおよびバージョン管理方法 | |
US9262279B2 (en) | Classifying and monitoring database operations based on a cost of recovery | |
CN109753378A (zh) | 一种内存故障的隔离方法、装置、系统及可读存储介质 | |
CN109257396B (zh) | 一种分布式锁调度方法及装置 | |
AU674193B2 (en) | A system for relations recovery of a data base in case of errors | |
US9471409B2 (en) | Processing of PDSE extended sharing violations among sysplexes with a shared DASD | |
CN116302652A (zh) | 系统报警信息的处理方法、装置及电子设备 | |
CN117591316A (zh) | 追踪存储io执行情况的方法、装置、设备及存储介质 | |
CN113760608B (zh) | 数据恢复方法和装置、电子设备和存储介质 | |
US11874851B2 (en) | Contextual replication profile creation based on data criticality | |
CN113609091B (zh) | 日志管理方法、装置、设备及存储介质 | |
CN114265900A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN115269252A (zh) | 应用程序故障处理方法、装置、设备及存储介质 | |
CN114265563B (zh) | 基于云计算的对象存储方法、装置及存储介质 | |
US11714631B2 (en) | Method, electronic device, and computer program product for managing operating system | |
CN102567181B (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 |