本文作者:kaifamei

一种磁盘检测方法、装置、设备及存储介质与流程

更新时间:2025-01-10 20:41:34 0条评论

一种磁盘检测方法、装置、设备及存储介质与流程



1.本发明涉及磁盘存储技术领域,特别涉及一种磁盘检测方法、装置、设备及存储介质。


背景技术:



2.随着磁盘在存储设备上的广泛使用,存储系统为了检测磁盘是否异常,目前已经产生一些硬盘故障检测的方案,通常是检测介质错误、盘体访问故障等磁盘问题,但没有针对磁盘性能的诊断工具。当硬盘glist(增长坏道表)写满被弃用、碟片滑落、震动、高温等情况时,会导致硬盘性能下降,这些问题不能被smart等磁盘诊断工具发现,在一定时间内磁盘还能正常访问,但是性能会受到一定影响,这些盘还会继续使用。
3.当磁盘访问性能变慢、跟不上系统的处理能力时,就会产生一些问题,比如raid(redundant arrays of independent disks,磁盘阵列)发现有的条带访问较慢,导致raid的性能下降,进而导致系统的性能下降。另外当磁盘本身正常,只是当上层下来的压力过载时,磁盘响应变慢,导致未处理过来的io(input/output,输入/输出)在上层累积,新来的io要排队,累积的越多排队的就越久,从而造成io超时。因此不易区分磁盘性能不佳是慢盘导致的还是压力过载导致的。


技术实现要素:



4.有鉴于此,本发明的目的在于提供一种磁盘检测方法、装置、设备和存储介质,能够有效区分磁盘存在的问题,提高问题判断的准确性,更好的平衡存储业务的功能。其具体方案如下:
5.第一方面,本技术公开了一种磁盘检测方法,包括:
6.获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;
7.基于所述判断结果判断所述磁盘是否满足预设条件;
8.若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;
9.若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
10.可选的,所述基于所述判断结果判断所述磁盘是否满足预设条件,包括:
11.若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘;
12.若所述判断结果为所述当前每秒读写次数小于或等于所述预设阈值,则获取所述磁盘在第一单位时间内的耗时总和,并基于所述耗时总和判断所述磁盘是否满足所述预设条件。
13.可选的,所述若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘之后,还包括:
14.获取第二单位时间内的io排队时长总和;
15.将所述io排队时长总和与预设的io排队时长总和标准值进行比较;
16.若所述io排队时长总和大于所述io排队时长总和标准值,则判定上层压力超出预设压力阈值,并执行预设磁盘调整操作;
17.若所述io排队时长总和小于或等于所述io排队时长总和标准值,则保持。
18.可选的,所述基于所述耗时总和判断所述磁盘是否满足所述预设条件,包括:
19.将所述耗时总和与预设耗时总和标准值进行比较;
20.若所述耗时总和大于所述预设耗时总和标准值,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘;
21.若所述耗时总和小于所述预设耗时总和标准值,则获取对应的耗时峰值;
22.若所述耗时峰值不满足预设慢盘峰值判断规则,则判定所述磁盘满足所述预设条件;
23.若所述耗时峰值满足所述预设慢盘峰值判断规则,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘。
24.可选的,所述获取目标io的目标耗时时长之前,还包括:
25.向所述磁盘发送第一otur指令,以便所述磁盘在执行完全部的io时生成对应的第一otur结果并返回。
26.可选的,所述若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,包括:
27.当所述磁盘满足所述预设条件并且接收到所述第一otur结果时,从io排队队列中获取预设数量的所述目标io,并将全部所述目标io并发下发至所述磁盘;
28.向所述磁盘发送第二otur指令,以便所述磁盘在执行完全部所述目标io后生成第二otur结果并返回;
29.当接收到所述第二otur结果时,基于io发送时间与第二otur结果接收时间计算差值,以得到执行完全部所述目标io所需的目标耗时时长。
30.可选的,所述将所述目标耗时时长与所述目标io对应的标准耗时时长比较之前,还包括:
31.计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长;
32.相应的,所述将所述目标耗时时长与所述目标io对应的标准耗时时长比较之后,还包括:
33.若所述目标耗时时长小于或等于所述标准耗时时长,则判定所述磁盘不是慢盘。
34.第二方面,本技术公开了一种磁盘检测装置,包括:
35.第一判断模块,用于获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;
36.第二判断模块,用于基于所述判断结果判断所述磁盘是否满足预设条件;
37.时长比较模块,用于若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;
38.慢盘判定模块,用于若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
39.第三方面,本技术公开了一种电子设备,包括:
40.存储器,用于保存计算机程序;
41.处理器,用于执行所述计算机程序,以实现如前述公开的磁盘检测方法的步骤。
42.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如前述公开的磁盘检测方法。
43.可见,本技术提供了一种磁盘检测方法,包括:获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;基于所述判断结果判断所述磁盘是否满足预设条件;若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。由此可见,本技术通过判断磁盘是否满足预设条件来决定是否对目标io的耗时时长进行比较,若目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘,有效区分磁盘存在的问题,提高了问题判断的准确性,更好的平衡了存储业务的功能。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
45.图1为本技术公开的一种磁盘检测方法流程图;
46.图2为本技术公开的一种具体的磁盘检测方法流程图;
47.图3为本技术公开的一种具体的磁盘检测方法流程图;
48.图4为本技术提供的磁盘检测装置结构示意图;
49.图5为本技术提供的一种电子设备结构图。
具体实施方式
50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.目前,当磁盘访问性能变慢、跟不上系统的处理能力时,就会产生一些问题,比如raid发现有的条带访问较慢,导致raid的性能下降,进而导致系统的性能下降。另外当磁盘本身正常,只是当上层下来的压力过载时,磁盘响应变慢,导致未处理过来的io在上层累积,新来的io要排队,累积的越多排队的就越久,从而造成io超时。因此不易区分磁盘性能不佳是慢盘导致的还是压力过载导致的。为此,本技术提供了一种磁盘检测方法,能够有效区分磁盘存在的问题,提高问题判断的准确性,更好的平衡存储业务的功能。
52.本发明实施例公开了一种磁盘检测方法,参见图1所示,该方法包括:
53.步骤s11:获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果。
54.本实施例中,获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果。例如获取过去1s内磁盘的iops(input/output operations per second,每秒读写i/o的次数),根据磁盘厂商给定的磁盘iops极限,对照是否在正常范围内。若预设阈值为1s内极限值100,则获取1s内磁盘的当前每秒读写次数,将所述当前每秒读写次数与极限值100进行比较,得到对应的判断结果。可以理解的是,在上层发现io超时的时候开始执行获取预设时间内磁盘的当前每秒读写次数的步骤。另外,在进行磁盘性能统计时,需要统计磁盘iops、带宽、盘上耗时总和、最大耗时、读写的块长度信息、发给磁盘前io排队的耗时时长以及排队io个数,粒度越精确越好,例如可以获取1s内的上述全部数据。
55.步骤s12:基于所述判断结果判断所述磁盘是否满足预设条件。
56.本实施例中,判断所述当前每秒读写次数是否大于预设阈值,得到判断结果之后,基于所述判断结果判断所述磁盘是否满足预设条件。可以理解的是,本方案分为两个阶段,基于所述判断结果判断所述磁盘是否满足预设条件为第一阶段,若所述磁盘满足所述预设条件则进入第二阶段的判断。其中第一阶段可以检测磁盘的上层压力是否过大,也可以根据判断结果检测磁盘是否为慢盘。需要指出的是,判断结果也可以是存在磁盘是慢盘的概率,即当前磁盘可能是慢盘,此时则进入第二阶段进行慢盘检测的流程,从而诊断当前磁盘是否为慢盘。
57.步骤s13:若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较。
58.本实施例中,基于所述判断结果判断所述磁盘是否满足预设条件之后,若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较。可以理解的是,若所述磁盘满足所述预设条件,则表明无法明确的判定磁盘是慢盘或不是慢盘,即当前磁盘存在是慢盘的可能性,此时需要进入阶段二进行进一步的慢盘检测。具体的,获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较,根据目标耗时时长与标准耗时时长的比较结果判断当前磁盘是否是慢盘。
59.步骤s14:若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
60.本实施例中,将所述目标耗时时长与所述目标io对应的标准耗时时长比较之后,若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。可以理解的是,由于在现有技术中无法确定磁盘性能不佳的原因是磁盘为慢盘还是压力过载,因此通过第一阶段确定磁盘是否压力过载,若是则无需再次进行阶段二的慢盘检测流程,若不是压力过载则进入阶段二的慢盘检测流程,根据目标耗时时长与标准耗时时长的比较结果判断磁盘是否是慢盘,完成了磁盘是否是慢盘的检测,有效的减少了慢盘误判问题,并且根据是哪类问题来提示用户来调整或控制存储系统上的业务,例如若是压力过载则提示用户调整或控制存储系统上的业务,或更换其他的磁盘来缓解压力,简单便捷的促使磁盘性能跟业务io相协调、充分发挥磁盘功效、更好的平衡存储业务的功能。需要指出的是,本方案采用c语言进行实现,使用io统计信息、磁盘性能数据、磁盘厂商提供的性能极限值等,使得抽取数据范围合理,保证判断的正确性。
61.可见,本技术提供了一种磁盘检测方法,包括:获取预设时间内磁盘的当前每秒读
写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;基于所述判断结果判断所述磁盘是否满足预设条件;若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。由此可见,本技术通过判断磁盘是否满足预设条件来决定是否对目标io的耗时时长进行比较,若目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘,有效区分磁盘存在的问题,提高了问题判断的准确性,更好的平衡了存储业务的功能。
62.参见图2所示,本发明实施例公开了一种磁盘检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
63.步骤s21:获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果。
64.步骤s22:若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘。
65.本实施例中,判断所述当前每秒读写次数是否大于预设阈值,得到判断结果之后,若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘。可以理解的是,若当前预设阈值为100,则在当前每秒读写次数大于100时,可以直接判定所述磁盘不是慢盘,同时判定所述磁盘不满足所述预设条件。需要指出的是,所述预设条件为无法准确确定当前磁盘是否为慢盘。而当前每秒读写次数大于所述预设阈值可以准确判断当前磁盘不是慢盘,因此不满足所述预设条件。
66.步骤s23:获取第二单位时间内的io排队时长总和,将所述io排队时长总和与预设的io排队时长总和标准值进行比较。
67.本实施例中,若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘之后,获取第二单位时间内的io排队时长总和,将所述io排队时长总和与预设的io排队时长总和标准值进行比较。可以理解的是,在当前每秒读写次数大于100时,需要进行判断是否压力过载的步骤,即通过io排队时长总和判断压力是否过载。具体的,例如预先获取每次io等待标准时长(即排队时长)400ms,预设阈值为100,则可以计算出标准情况下1s内100个io的排队时长总和为100*400ms=40000ms=40s,即标准排队时长总和为40s。然后获取此刻第二单位时间内的io排队时长总和,即获取当前100个io的排队时长总和,将io排队时长总和与标准排队时长总和40s进行比较,得到对应的比较结果。若所述io排队时长总和小于或等于所述io排队时长总和标准值(即标准排队时长总和40s),说明磁盘性能正常的,不进入阶段二检测磁盘是否慢盘。
68.步骤s24:若所述io排队时长总和大于所述io排队时长总和标准值,则判定上层压力超出预设压力阈值,并执行预设磁盘调整操作。
69.本实施例中,将所述io排队时长总和与预设的io排队时长总和标准值进行比较之后,若所述io排队时长总和大于所述io排队时长总和标准值,则判定上层压力超出预设压力阈值,并执行预设磁盘调整操作。即所述io排队时长总和大于40s,此时认为是上层压力过大(即压力过载),因为盘上性能正常,因此判定上层下发的io过多,导致很多io排队,从而导致排队时长过长。可以理解的是,如果上层压力过大,则不再检测磁盘是否慢盘,即不
再进入阶段二,而是直接提示用户调整上层压力,例如更换磁盘、或增加高性能的磁盘如ssd(solid state drives,固态硬盘),或增加hdd(hard disk drive,硬盘驱动器)等。
70.步骤s25:若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较。
71.步骤s26:若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
72.关于上述步骤s21、s25、s26的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
73.可见,本技术实施例通过获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘;获取第二单位时间内的io排队时长总和,将所述io排队时长总和与预设的io排队时长总和标准值进行比较;若所述io排队时长总和大于所述io排队时长总和标准值,则判定上层压力超出预设压力阈值,并执行预设磁盘调整操作;若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘,有效区分磁盘存在的问题,提高了问题判断的准确性,更好的平衡了存储业务的功能。
74.参见图3所示,本发明实施例公开了一种磁盘检测方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。
75.步骤s31:获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果。
76.步骤s32:若所述判断结果为所述当前每秒读写次数小于或等于所述预设阈值,则获取所述磁盘在第一单位时间内的耗时总和,并基于所述耗时总和判断所述磁盘是否满足所述预设条件。
77.本实施例中,判断所述当前每秒读写次数是否大于预设阈值,得到判断结果之后,若所述判断结果为所述当前每秒读写次数小于或等于所述预设阈值,则获取所述磁盘在第一单位时间内的耗时总和,并基于所述耗时总和判断所述磁盘是否满足所述预设条件。具体的,将所述耗时总和与预设耗时总和标准值进行比较,若所述耗时总和大于所述预设耗时总和标准值,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘,若所述耗时总和小于所述预设耗时总和标准值,则获取对应的耗时峰值,若所述耗时峰值不满足预设慢盘峰值判断规则,则判定所述磁盘满足所述预设条件,若所述耗时峰值满足所述预设慢盘峰值判断规则,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘。
78.可以理解的是,获取预先计算的预设耗时总和标准值,例如预设阈值为100,每次io的耗时标准值为10ms,则计算1s内100个io的耗时总和标准值为100*10ms=1000ms。然后获取当前1s内的耗时总和,若耗时总和大于耗时总和标准值1000ms,则直接判断磁盘为慢盘,此时已准确确定磁盘为慢盘,即磁盘不满足所述预设条件,因此无需进入阶段二。若耗时总和小于耗时总和标准值1000ms,此时可能是前面没有io流量下来,直到1s中靠后的时间才有io流量下来,例如到最后一个io时耗时突然变长,此时检查最近的耗时峰值,即获取1s内对应的耗时峰值,若所述耗时峰值不满足预设慢盘峰值判断规则,则判定所述磁盘满足所述预设条件,若所述耗时峰值满足所述预设慢盘峰值判断规则,则判定所述磁盘不满
足所述预设条件,并判定所述磁盘是慢盘。例如,若是单个的io耗时长,则不能说明磁盘是慢盘,而是可能是慢盘,并且观察是否有连续的io慢,若连续的io慢满足预设慢盘峰值判断规则,则判定所述磁盘不满足所述预设条件,即磁盘是慢盘;若连续的io慢不满足预设慢盘峰值判断规则,则判定所述磁盘满足所述预设条件,即磁盘可能是慢盘。
79.步骤s33:当所述磁盘满足所述预设条件时,向所述磁盘发送第一otur指令。
80.本实施例中,基于所述耗时总和判断所述磁盘是否满足所述预设条件之后,当所述磁盘满足所述预设条件时,向所述磁盘发送第一otur(orderedtest unit ready,顺序的自测试指令)指令。可以理解的是,当所述磁盘满足所述预设条件时进入阶段二,首先向所述磁盘发送第一otur指令,当磁盘在处理完当前磁盘上的全部io时会生成对应的第一otur结果并返回。
81.步骤s34:接收到所述第一otur结果时,获取目标io的目标耗时时长。
82.本实施例中,向所述磁盘发送第一otur指令之后,接收到所述第一otur结果时,获取目标io的目标耗时时长。可以理解的是,当接收到所述第一otur结果时,表面所述磁盘当前没有待处理的io,此时从io排队队列中获取预设数量的所述目标io,并将全部所述目标io并发下发至所述磁盘,然后向所述磁盘发送第二otur指令,以便所述磁盘在执行完全部所述目标io后生成第二otur结果并返回,当接收到所述第二otur结果时,基于io发送时间与第二otur结果接收时间计算差值,以得到执行完全部所述目标io所需的目标耗时时长。
83.例如,从排队io里选取排队队列里的前26(盘队列io个数)个io做标记,即获得26个目标io,然后将这26个目标io并发下发至磁盘,目标io下发完成后,再次向磁盘发送otur指令(即第二otur指令),当磁盘在处理完这26个目标io之后,会生成第二otur结果并返回,然后基于io发送时间与第二otur结果接收时间计算差值,即可获得执行完全部所述目标io所需的目标耗时时长,所述目标耗时时长即为这次otur的盘耗时。可以理解的是,这次otur的盘耗时等于这26个目标io的盘上耗时,将盘上耗时时长与标准耗时时长比较,若盘上耗时时长大于标准耗时时长,则判定磁盘为慢盘。
84.步骤s35:计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长。
85.本实施例中,计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长。可以理解的是,26个目标io的标准耗时时长=(1+2+3+

+26)*单个目标io的盘处理平均耗时。例如iops极限值为100,单个目标io的盘处理平均耗时10ms,那这26个io的总耗时=351*10ms=3510ms,即标准耗时时长为3510ms。需要指出的是,第二个io耗时时长为等待第一个io的时长加第二个io自己本身的耗时时长,依次类推。
86.步骤s36:将所述目标耗时时长与所述目标io对应的标准耗时时长比较。
87.本实施例中,计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长之后,将所述目标耗时时长与所述目标io对应的标准耗时时长比较。若所述目标耗时时长小于或等于所述标准耗时时长(3510ms),则判定所述磁盘不是慢盘。
88.步骤s37:若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
89.关于上述步骤s31、s37的具体内容可以参考前述实施例中公开的相应内容,在此不再进行赘述。
90.可见,本技术实施例通过获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;若所述判断结果为所述当前每秒
读写次数小于或等于所述预设阈值,则获取所述磁盘在第一单位时间内的耗时总和,并基于所述耗时总和判断所述磁盘是否满足所述预设条件;当所述磁盘满足所述预设条件时,向所述磁盘发送第一otur指令;接收到所述第一otur结果时,获取目标io的目标耗时时长;计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长;将所述目标耗时时长与所述目标io对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘,有效区分磁盘存在的问题,提高了问题判断的准确性,更好的平衡了存储业务的功能。
91.参见图4所示,本技术实施例还相应公开了一种磁盘检测装置,包括:
92.第一判断模块11,用于获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;
93.第二判断模块12,用于基于所述判断结果判断所述磁盘是否满足预设条件;
94.时长比较模块13,用于若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;
95.慢盘判定模块14,用于若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
96.可见,本技术包括:获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;基于所述判断结果判断所述磁盘是否满足预设条件;若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。由此可见,本技术通过判断磁盘是否满足预设条件来决定是否对目标io的耗时时长进行比较,若目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘,有效区分磁盘存在的问题,提高了问题判断的准确性,更好的平衡了存储业务的功能。
97.在一些具体实施例中,所述第一判断模块11,具体包括:
98.第一判断单元,用于获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果。
99.在一些具体实施例中,所述第二判断模块12,具体包括:
100.第一磁盘判定单元,用于若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘;
101.排队时长总和获取单元,用于获取第二单位时间内的io排队时长总和;
102.排队时长总和比较单元,用于将所述io排队时长总和与预设的io排队时长总和标准值进行比较;
103.磁盘调整单元,用于若所述io排队时长总和大于所述io排队时长总和标准值,则判定上层压力超出预设压力阈值,并执行预设磁盘调整操作;
104.磁盘保持单元,用于若所述io排队时长总和小于或等于所述io排队时长总和标准值,则保持;
105.耗时总和获取单元,用于若所述判断结果为所述当前每秒读写次数小于或等于所述预设阈值,则获取所述磁盘在第一单位时间内的耗时总和;
106.耗时总和比较单元,用于将所述耗时总和与预设耗时总和标准值进行比较;
107.第二磁盘判定单元,用于若所述耗时总和大于所述预设耗时总和标准值,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘;
108.耗时峰值获取单元,用于若所述耗时总和小于所述预设耗时总和标准值,则获取对应的耗时峰值;
109.第三磁盘判定单元,用于若所述耗时峰值不满足预设慢盘峰值判断规则,则判定所述磁盘满足所述预设条件;
110.第四磁盘判定单元,用于若所述耗时峰值满足所述预设慢盘峰值判断规则,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘。
111.在一些具体实施例中,所述时长比较模块13,具体包括:
112.第一指令发送单元,用于若所述磁盘满足所述预设条件,则向所述磁盘发送第一otur指令,以便所述磁盘在执行完全部的io时生成对应的第一otur结果并返回;
113.目标io获取单元,用于接收到所述第一otur结果时,从io排队队列中获取预设数量的所述目标io;
114.目标io下发单元,用于将全部所述目标io并发下发至所述磁盘;
115.第二指令发送单元,用于向所述磁盘发送第二otur指令,以便所述磁盘在执行完全部所述目标io后生成第二otur结果并返回;
116.目标耗时时长计算单元,用于当接收到所述第二otur结果时,基于io发送时间与第二otur结果接收时间计算差值,以得到执行完全部所述目标io所需的目标耗时时长;
117.标准耗时时长计算单元,用于计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长;
118.耗时时长比较单元,用于将所述目标耗时时长与所述目标io对应的标准耗时时长比较。
119.在一些具体实施例中,所述慢盘判定模块14,具体包括:
120.第五磁盘判定单元,用于若所述目标耗时时长小于或等于所述标准耗时时长,则判定所述磁盘不是慢盘;
121.第六磁盘判定单元,用于若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。
122.进一步的,本技术实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
123.图5为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的磁盘检测方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
124.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
125.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
126.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的磁盘检测方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
127.进一步的,本技术实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的磁盘检测方法步骤。
128.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
129.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
130.以上对本发明所提供的一种磁盘检测方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:


1.一种磁盘检测方法,其特征在于包括:获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;基于所述判断结果判断所述磁盘是否满足预设条件;若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。2.根据权利要求1所述的磁盘检测方法,其特征在于,所述基于所述判断结果判断所述磁盘是否满足预设条件,包括:若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘;若所述判断结果为所述当前每秒读写次数小于或等于所述预设阈值,则获取所述磁盘在第一单位时间内的耗时总和,并基于所述耗时总和判断所述磁盘是否满足所述预设条件。3.根据权利要求2所述的磁盘检测方法,其特征在于,所述若所述判断结果为所述当前每秒读写次数大于所述预设阈值,则直接判定所述磁盘不满足所述预设条件,并判定所述磁盘不是慢盘之后,还包括:获取第二单位时间内的io排队时长总和;将所述io排队时长总和与预设的io排队时长总和标准值进行比较;若所述io排队时长总和大于所述io排队时长总和标准值,则判定上层压力超出预设压力阈值,并执行预设磁盘调整操作;若所述io排队时长总和小于或等于所述io排队时长总和标准值,则保持。4.根据权利要求2所述的磁盘检测方法,其特征在于,所述基于所述耗时总和判断所述磁盘是否满足所述预设条件,包括:将所述耗时总和与预设耗时总和标准值进行比较;若所述耗时总和大于所述预设耗时总和标准值,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘;若所述耗时总和小于所述预设耗时总和标准值,则获取对应的耗时峰值;若所述耗时峰值不满足预设慢盘峰值判断规则,则判定所述磁盘满足所述预设条件;若所述耗时峰值满足所述预设慢盘峰值判断规则,则判定所述磁盘不满足所述预设条件,并判定所述磁盘是慢盘。5.根据权利要求1至4任一项所述的磁盘检测方法,其特征在于,所述获取目标io的目标耗时时长之前,还包括:向所述磁盘发送第一otur指令,以便所述磁盘在执行完全部的io时生成对应的第一otur结果并返回。6.根据权利要求5所述的磁盘检测方法,其特征在于,所述若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,包括:当所述磁盘满足所述预设条件并且接收到所述第一otur结果时,从io排队队列中获取预设数量的所述目标io,并将全部所述目标io并发下发至所述磁盘;
向所述磁盘发送第二otur指令,以便所述磁盘在执行完全部所述目标io后生成第二otur结果并返回;当接收到所述第二otur结果时,基于io发送时间与第二otur结果接收时间计算差值,以得到执行完全部所述目标io所需的目标耗时时长。7.根据权利要求6所述的磁盘检测方法,其特征在于,所述将所述目标耗时时长与所述目标io对应的标准耗时时长比较之前,还包括:计算在预设标准情况下执行完全部所述目标io所需的标准耗时时长;相应的,所述将所述目标耗时时长与所述目标io对应的标准耗时时长比较之后,还包括:若所述目标耗时时长小于或等于所述标准耗时时长,则判定所述磁盘不是慢盘。8.一种磁盘检测装置,其特征在于,包括:第一判断模块,用于获取预设时间内磁盘的当前每秒读写次数,并判断所述当前每秒读写次数是否大于预设阈值,以得到判断结果;第二判断模块,用于基于所述判断结果判断所述磁盘是否满足预设条件;时长比较模块,用于若所述磁盘满足所述预设条件,则获取目标io的目标耗时时长,并将所述目标耗时时长与所述目标io对应的标准耗时时长比较;慢盘判定模块,用于若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。9.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的磁盘检测方法的步骤。10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的磁盘检测方法。

技术总结


本申请公开了一种磁盘检测方法、装置、设备及存储介质,涉及磁盘存储技术领域,包括:获取预设时间内磁盘的当前每秒读写次数,判断所述当前每秒读写次数是否大于预设阈值,得到判断结果;基于所述判断结果判断所述磁盘是否满足预设条件;若所述磁盘满足所述预设条件,则获取目标IO的目标耗时时长,并将所述目标耗时时长与所述目标IO对应的标准耗时时长比较;若所述目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘。本申请通过判断磁盘是否满足预设条件来决定是否对目标IO的耗时时长进行比较,若目标耗时时长大于所述标准耗时时长,则判定所述磁盘是慢盘,有效区分磁盘存在的问题,提高了问题判断的准确性,更好的平衡了存储业务的功能。了存储业务的功能。了存储业务的功能。


技术研发人员:

李燕红 苑忠科

受保护的技术使用者:

苏州浪潮智能科技有限公司

技术研发日:

2022.09.22

技术公布日:

2022/12/12


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-45353-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-12-17 21:09:39

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论