System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据存储,具体涉及一种追踪存储io执行情况的方法、装置、设备及存储介质。
技术介绍
1、分布式存储系统随着服务器数量的增加,故障率也随之上升,为了保证服务器出现故障的情况下系统仍然可用,一般的做法时把一个数据分成多份储存在不同的服务器中,根据需求使用不同的冗余策略来保证数据的可靠性和容错性。
2、以三副本写为例,将数据复制三份副本存在三个不同的节点上,具有一个主副本,两个从副本。客户端client发送rpc(remote procedure call,远程过程调用)请求(io)到服务器的主副本节点上,再由主副本经网络分发到另外两个从副本中。
3、为了辅助定位op异常、超时等bug,则需要对io(input/output,输入/输出)路径上的时延进行监控,现有的io时延监控方法大多是监控某个流程的平均时延,存在不能精确到具体io、不能跨界点监控等缺陷;若存在平均时延符合预期但某个io执行时间超时的情况,则不能准确的定位其超时原因。
技术实现思路
1、本申请提供一种追踪存储io执行情况的方法、装置、设备及存储介质,其能有效的监控分布式存储中的io处理情况,保留问题定位信息,增加了分布式存储系统的可定位性。
2、第一方面,本申请实施例提供一种追踪存储io执行情况的方法,所述追踪存储io执行情况的方法包括:
3、当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录
4、在rpc的关键流程插入时间戳和关键流程名称;
5、记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
6、当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
7、结合第一方面,在一种实施方式中,所述记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型计算rpc处理时间是否超时,包括:
8、判断reply时间戳和起始时间戳的差值是否超出基于消息类型设定的时间阈值;
9、若超出设定的时间阈值,则判定rpc处理时间超时。
10、结合第一方面,在一种实施方式中,根据不同的消息类型设置不同的时间阈值。
11、结合第一方面,在一种实施方式中,分配tracker时,在tracker pool中取出tracker,并将tracker加入inflight队列。
12、结合第一方面,在一种实施方式中,若tracker pool为空,则通过alloc函数申请tracker,并在释放时将申请的tracker放入tracker pool中。
13、结合第一方面,在一种实施方式中,若rpc陷入死循环或主动切出不继续处理,利用看门狗每隔一段时间检测inflight队列rpc的起始时间戳,若超阈值未处理,则将信息输出到日志并进行故障恢复报警。
14、结合第一方面,在一种实施方式中,当rpc处理超时时,将记录的rpc关键流程时间戳输出到日志并报警。
15、第二方面,本申请实施例提供了一种追踪存储io执行情况的装置,所述追踪存储io执行情况的装置包括:
16、分配模块,其用于当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;
17、插入模块,其用于在rpc的关键流程插入时间戳和关键流程名称;
18、判断模块,其用于记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;
19、定位模块,其用于当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
20、第三方面,本申请实施例提供了一种追踪存储io执行情况的设备,所述追踪存储io执行情况的设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的追踪存储io执行情况的程序,其中所述追踪存储io执行情况的程序被所述处理器执行时,实现如上述任一种所述的追踪存储io执行情况的方法的步骤。
21、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有追踪存储io执行情况的程序,其中所述追踪存储io执行情况的程序被处理器执行时,实现如上述任一种所述的追踪存储io执行情况的方法的步骤。
22、本申请实施例提供的技术方案带来的有益效果至少包括:
23、本申请中的追踪存储io执行情况的方法,其当节点收到远程过程调用rpc消息时,分配一追踪器tracker,并将rpc消息对应的rpc id、消息类型和起始时间戳记录到tracker中;在rpc的关键流程插入时间戳和关键流程名称;记录节点rpc reply时的reply时间戳,并根据起始时间戳和消息类型判断rpc处理时间是否超时;当rpc处理超时时,根据rpc id在对应节点查找rpc关键流程时间戳,以进行辅助定位。
24、本申请中的方案在每个线程上维护一个tracker的内存池,用来存放追踪器的实例,可以减少内存申请释放,减少cpu和内存的消耗。以rpc id为唯一标识符,不同线程使用不同的tracker跟踪,实现免锁;另外,以rpc id为唯一标识符,还可以跨节点追踪时延。
本文档来自技高网...【技术保护点】
1.一种追踪存储IO执行情况的方法,其特征在于,所述追踪存储IO执行情况的方法包括:
2.如权利要求1所述的追踪存储IO执行情况的方法,其特征在于:所述记录节点rpcreply时的reply时间戳,并根据起始时间戳和消息类型计算rpc处理时间是否超时,包括:
3.如权利要求2所述的追踪存储IO执行情况的方法,其特征在于:
4.如权利要求1所述的追踪存储IO执行情况的方法,其特征在于:
5.如权利要求4所述的追踪存储IO执行情况的方法,其特征在于:
6.如权利要求4所述的追踪存储IO执行情况的方法,其特征在于:
7.如权利要求1所述的追踪存储IO执行情况的方法,其特征在于:
8.一种追踪存储IO执行情况的装置,其特征在于,所述追踪存储IO执行情况的装置包括:
9.一种追踪存储IO执行情况的设备,其特征在于,所述追踪存储IO执行情况的设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被所述处理器执行时,实现如权
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有追踪存储IO执行情况的程序,其中所述追踪存储IO执行情况的程序被处理器执行时,实现如权利要求1至7中任一项所述的追踪存储IO执行情况的方法的步骤。
...【技术特征摘要】
1.一种追踪存储io执行情况的方法,其特征在于,所述追踪存储io执行情况的方法包括:
2.如权利要求1所述的追踪存储io执行情况的方法,其特征在于:所述记录节点rpcreply时的reply时间戳,并根据起始时间戳和消息类型计算rpc处理时间是否超时,包括:
3.如权利要求2所述的追踪存储io执行情况的方法,其特征在于:
4.如权利要求1所述的追踪存储io执行情况的方法,其特征在于:
5.如权利要求4所述的追踪存储io执行情况的方法,其特征在于:
6.如权利要求4所述的追踪存储io执行情况的方法,其特征在于:
7.如权利要求1所述的追踪存储io执行情况的方法,其特征...
【专利技术属性】
技术研发人员:安佳星,
申请(专利权)人:中电云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。