CN116483653A - 一种固态硬盘的监测方法、装置、计算机设备及存储介质 - Google Patents
一种固态硬盘的监测方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116483653A CN116483653A CN202310436481.XA CN202310436481A CN116483653A CN 116483653 A CN116483653 A CN 116483653A CN 202310436481 A CN202310436481 A CN 202310436481A CN 116483653 A CN116483653 A CN 116483653A
- Authority
- CN
- China
- Prior art keywords
- solid state
- state disk
- monitoring
- target solid
- target
- 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
- 239000007787 solid Substances 0.000 title claims abstract description 191
- 238000012544 monitoring process Methods 0.000 title claims abstract description 147
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000007246 mechanism Effects 0.000 claims abstract description 46
- 230000001960 triggered effect Effects 0.000 claims abstract description 17
- 238000011217 control strategy Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 42
- 239000000284 extract Substances 0.000 claims description 20
- 238000000605 extraction Methods 0.000 claims description 12
- 230000001105 regulatory effect Effects 0.000 claims description 12
- 238000012806 monitoring device Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- 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
Abstract
本发明涉及计算机技术领域,公开了一种固态硬盘的监测方法、装置、计算机设备及存储介质,其中方法包括:获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘;监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的;利用监测结果确定目标固态硬盘的调控策略;按照调控策略执行相应的调控操作。由此可以对目标固态硬盘中完成队列的第一整体占用率进行控制,解决目标固态硬盘中完成队列堵塞的问题。
Description
技术领域
本发明涉及计算机领域,具体涉及一种固态硬盘的监测方法、装置、计算机设备及存储介质。
背景技术
非易失性存储器标准(Non-Volatile Memory Express,NVMe)是逻辑设备接口标准,是使用PCI-E(peripheral component interconnect express)通道的固态硬盘(solid-state drive,SSD)的一种规范。NVMe诞生的目的是充分利用到PCI-E SSD的低延时以及并行性,以及当代处理器、平台与应用的并行性。
NVME SSD的读写过程就是执行主机(HOST)发送的输入/输出(Input/Output,IO)指令的过程,而IO指令的执行过程是通过队列(Queue)机制来实现的。
如图1所示,队列机制可简单理解为以下四个步骤:
1.主机把NVME SSD需要执行的IO指令放到提交队列(Submission Queue,SQ)中,并通知NVME SSD的IO Controller来提取待执行的指令;
2.NVME SSD的IO Controller去SQ中提取IO指令,然后完成IO指令的执行;
3.完成IO指令执行后,NVME SSD的IO Controller将执行结果写入到完成队列(Completion Queue,CQ)中,并通知主机来处理执行结果。
4.主机从CQ中读取IO指令执行的结果,并反馈给NVME Controller结果已处理。
SQ与CQ的数量和大小是有规定限制的,主机(HOST)端每个CPU内核(Core)可以有一个或者多个SQ,但只能有一个CQ,而SQ/CQ深度范围2-65536(64K)。
每个SQ放入的是命令条目,每个命令条目大小都是64字节,每个CQ放入的是命令完成信息的条目,每个条目大小是16字节。实际系统中需要多少SQ,取决于系统配置和性能需求,可灵活设置IO的SQ。同理CQ与SQ的深度也可灵活设置。
伴随NVME技术发展,NVME SSD处理数据速度也在逐步提高。通过上述现有技术分析可以看出,NVME SSD中CQ的配置数量有所限制,每个CPU Core只能配置一个CQ,而SQ可以配置多个,而当遇到主机HOST端为较低端的CPU时,也就是CPU从CQ中提取IO命令的完成信息速度过慢,有可能会造成CQ堵塞,CQ响应超时后会导致读写中断或报错。
发明内容
有鉴于此,本发明实施例提供了一种固态硬盘的监测方法、装置、计算机设备及存储介质,以解决完成队列CQ堵塞的问题。
第一方面,本发明实施例提供了一种固态硬盘的监测方法,方法包括:获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘;监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的;利用监测结果确定目标固态硬盘的调控策略;按照调控策略执行相应的调控操作。
本实施例提供的固态硬盘的监测方法,通过获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘;监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的;进一步利用监测结果确定目标固态硬盘的调控策略,按照调控策略执行相应的调控操作;也就是说,可以根据目标固态硬盘中完成队列的第一整体占用率来确定目标固态硬盘是否触发告警机制,并进一步采用不同的调控策略和调控操作,从而可以对目标固态硬盘中完成队列的第一整体占用率进行控制,解决目标固态硬盘中完成队列堵塞的问题。
在一种可选的实施方式中,监测目标固态硬盘当前是否触发告警机制,得到监测结果,包括:监测目标固态硬盘中每个完成队列对应的第一占用率;基于每个完成队列的第一占用率计算第一整体占用率;在第一整体占用率达到第一预设阈值的情况下,确定触发告警机制生效,并查询当前是否发送告警信息,得到监测结果。
通过监测目标固态硬盘中每个完成队列对应的第一占用率,基于每个完成队列的第一占用率计算第一整体占用率,可以准确的得到固态硬盘中完成队列的整体占用情况。
在一种可选的实施方式中,查询当前是否发送告警信息,得到监测结果,包括:从内存中获取告警信息对应预设指标的目标权值,其中,目标权值用于表示当前是否发送告警信息;基于目标权重确定监测结果,其中,监测结果包括发送告警信息以及未发送告警信息。
通过设置目标权重值,目的是便于在每次触发告警机制的情况下,可以快速明确当前是否发送过告警消息,避免重复发送告警信息。
在一种可选的实施方式中,按照调控策略执行相应的调控操作,包括:在监测结果为未发送告警信息的情况下,发送告警信息;在确定告警信息发送完成后,更新目标权值,并降低目标固态硬盘的控制器的提取频率,其中,提取频率为控制器从提交队列提取待执行命令的频率。
这是因为,在第一整体占用率达到第一预设阈值的情况下,说明完成队列已经临近堵塞,此时为了避免完成队列发生堵塞,根据队列机制,可以降低目标固态硬盘的控制器从提交队列提取待执行命令的频率。由此,可以协调NVME SSD与主机CPU之间的数据处理能力,避免完成队列堵塞。
在一种可选的实施方式中,按照调控策略执行相应的调控操作,包括:在监测结果为发送告警信息的情况下,继续检测目标固态硬盘中每个完成队列对应的第一占用率。
这是因为,在监测结果为当前已经发送告警信息的情况下,说明已经降低了目标固态硬盘的控制器从提交队列提取待执行命令的频率,因此只需继续监测目标固态硬盘中每个完成队列对应的占用率即可。
在一种可选的实施方式中,在按照调控策略执行相应的调控操作之后,方法还包括:监测目标固态硬盘中每个完成队列对应的第二占用率;基于每个完成队列的第二占用率计算第二整体占用率;在第二整体占用率达到占用率上限的情况下,暂停目标固态硬盘的控制器从提交队列中提取待执行命令。
由此不仅可以完成队列临近堵塞时采用降低目标固态硬盘的控制器从提交队列提取待执行命令的频率的方法预防堵塞,还可以堵塞发生时,通过暂停目标固态硬盘的控制器从提交队列中提取待执行命令的方法缓解堵塞。
在一种可选的实施方式中,在暂停目标固态硬盘的控制器从提交队列中提取待执行命令之后,方法还包括:监测目标固态硬盘中每个完成队列对应的第三占用率;基于每个完成队列的第三占用率计算第三整体占用率;在第三整体占用率达到第二预设阈值的情况下,恢复目标固态硬盘的控制器从提交队列中提取待执行命令,并将预设指标的目标权重更新为预设值,其中,在目标权重为预设值时表示当前未告警信息。
这是因为,在暂停目标固态硬盘的控制器从提交队列中提取待执行命令之后,随着时间的推移,完成队列中的第二整体占用率会下降,完成队列中的堵塞情况可以得到缓解即第三整体占用率达到第二预设阈值,此时可以恢复目标固态硬盘的控制器从提交队列中提取待执行命令,由此可以保证IO正常运行不中断。
第二方面,本发明实施例提供了一种固态硬盘的监测装置,包括获取模块、监测模块、确定模块和执行模块,获取模块用于获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘;监测模块,用于监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据固态硬盘中完成队列的占用率触发的;确定模块,用于利用监测结果确定目标固态硬盘的调控策略;执行模块,用于按照调控策略执行相应的调控操作。
本实施例提供的固态硬盘的监测装置,通过获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘;监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的;进一步利用监测结果确定目标固态硬盘的调控策略,按照调控策略执行相应的调控操作;也就是说,可以根据目标固态硬盘中完成队列的第一整体占用率来确定目标固态硬盘是否触发告警机制,并进一步采用不同的调控策略和调控操作,从而可以对目标固态硬盘中完成队列的第一整体占用率进行控制,解决目标固态硬盘中完成队列堵塞的问题。
第三方面,本发明实施例提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的固态硬盘的监测方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的固态硬盘的监测方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是队列机制的示意图;
图2是根据本发明一些实施例的固态硬盘检测方法的流程示意图;
图3是根据本发明一些实施例的另一固态硬盘检测方法的流程示意图;
图4是根据本发明一些实施例的又一固态硬盘检测方法的流程示意图;
图5是根据本发明一些实施例的再一固态硬盘检测方法的流程示意图;
图6是本发明固态硬盘检测方法一示例的流程示意图;
图7是根据本发明一些实施例的固态硬盘检测装置的结构框图;
图8是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
NVME SSD中IO指令的执行过程是通过Queue机制来实现的,SQ与CQ的数量和大小是有规定限制的,主机端每个CPU Core可以有一个或者多个SQ,但只能有一个CQ,当遇到主机HOST端为较低端的CPU时,也就是CPU从CQ中提取IO命令的完成信息速度过慢,有可能会造成CQ堵塞,CQ响应超时后会导致读写中断或报错。
另外,NVME SSD的读写速度越快,即NVME SSD控制器对IO指令处理的速度越快,那么保存IO指令执行结果条目的CQ压力就越大。当CQ规模小或者主机CPU性能差,来不及处理CQ中存放的IO指令完成结果条目时,可能会出现NVME SSD的CQ阻塞的问题。若运行环境得不到改善,阻塞一直存在,会造成读写超时,报错中断的问题。
为了解决CQ阻塞的问题,相关技术可以通过增加缓存或者提高CQ深度来缓解压力,但采用上述方法也有可能造成NVME SSD工作长时间过载,造成磁盘温度高居不下,影响数据安全与磁盘使用寿命,可能直接导致掉盘现象;而且如果增加CQ深度或数量还会过多占用主机内存或者NVME SSD控制器内存。
基于此,本发明实施例提供了一种固态硬盘的监测方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种固态硬盘的监测方法,可用于计算机设备,如手机、平板电脑等,图2是根据本发明一些实施例的固态硬盘检测方法的流程示意图,如图2所示,该流程包括如下步骤:
步骤S201,获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘。
在本实施例中,计算机设备中可以包括一个或多个固态硬盘。为了解决固态硬盘中完成队列堵塞的问题,可以对固态硬盘进行监测。当获取到硬盘监测任务时,可以对硬盘监测任务进行解析确定待监测的目标固态硬盘。
步骤S202,监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的。
在本实施例中,为了防止目标固态硬盘中的完成队列堵塞,可以通过根据目标固态硬盘中完成队列的第一整体占用率来确定目标固态硬盘是否触发告警机制。
在本实施例中,监测结果包括发送告警信息以及未发送告警信息。
步骤S203,利用监测结果确定目标固态硬盘的调控策略。
在本实施例中,当监测结果不同时,目标固态硬盘的调控策略也不相同。
步骤S204,按照调控策略执行相应的调控操作。
在本实施例中,按照调控策略执行相应的调控操作可以使得不同的监测结果具有不同的调控操作。
本实施例提供的固态硬盘的监测方法,通过获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘;监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的;进一步利用监测结果确定目标固态硬盘的调控策略,按照调控策略执行相应的调控操作;也就是说,可以根据目标固态硬盘中完成队列的第一整体占用率来确定目标固态硬盘是否触发告警机制,并进一步采用不同的调控策略和调控操作,从而可以对目标固态硬盘中完成队列的第一整体占用率进行控制,解决目标固态硬盘中完成队列堵塞的问题。
在本实施例中提供了一种固态硬盘的监测方法,可用于上述的计算机设备,如手机、平板电脑等,图3是根据本发明一些实施例的另一固态硬盘检测方法的流程示意图,如图3所示,该流程包括如下步骤:
步骤S301,获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S302,监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的。
具体地,上述步骤S302包括:
步骤S3021,监测目标固态硬盘中每个完成队列对应的第一占用率。
在本实施例中,完成队列用于存放指令执行结果。任一完成队列对应的第一占用率可以理解为:完成队列实际存放的指令执行结果的第一数量与完成队列能够存放的指令执行结果的第二数量的比值;还可以理解为:完成队列实际存放的指令执行结果的所占的空间与完成队列总空间的比值。
步骤S3022,基于每个完成队列的第一占用率计算第一整体占用率。
在本实施例中,目标固态硬盘中包括一个或多个完成队列。因为每个CPU内核只能配置一个完成队列;当CPU的内核为多个时,目标固态硬盘包括多个完成队列。当目标固态硬盘包括多个完成队列时,根据每个完成队列的第一占用率采用预设的算法计算第一整体占用率。其中,预设的算法包括但不限于计算多个的第一占用率的平均值,取多个的第一占用率的中位数,取多个的第一占用率的最大值。
步骤S3023,在第一整体占用率达到第一预设阈值的情况下,确定触发告警机制生效,并查询当前是否发送告警信息,得到监测结果。
在本实施例中,第一预设阈值可以在计算机设备中事先设置。在目标固态硬盘中还可以设置是否启动第一预设阈值的开关,当开关开启时,可以监测目标固态硬盘中每个完成队列对应的第一占用率;当开关关闭时,则不能监测目标固态硬盘中每个完成队列对应的第一占用率。
在一些可选的实施方式中,上述步骤S3023中的查询当前是否发送告警信息,得到监测结果包括以下步骤:
步骤a1,从内存中获取告警信息对应预设指标的目标权值,其中,目标权值用于表示当前是否发送告警信息。
具体的,目标权值可以采用“0”和“1”。目标权值为0,表示当前没有发送过告警消息;目标权值为1,表示当前已经发送过告警信息。
步骤a2,基于目标权重确定监测结果,其中,监测结果包括发送告警信息以及未发送告警信息。
在本实施例中,监测结果包括发送告警信息以及未发送告警信息。具体的,当从内存中获取到的目标权值为0时,表示当前没有发送过告警消息;当从内存中获取到的目标权值为1时,表示当前已经发送过告警信息。
步骤S303,利用监测结果确定目标固态硬盘的调控策略。
具体的,当监测结果为发送告警信息时,目标固态硬盘的调控策略为:继续检测目标固态硬盘中每个完成队列对应的第一占用率。
当监测结果为未发送告警信息时,目标固态硬盘的调控策略为:降低目标固态硬盘的控制器的提取频率同时继续检测目标固态硬盘中每个完成队列对应的第一占用率;其中,提取频率为控制器从提交队列提取待执行命令的频率。
步骤S304,按照调控策略执行相应的调控操作。
具体地,上述步骤S304包括:
S3041,在监测结果为未发送告警信息的情况下,发送告警信息;在确定告警信息发送完成后,更新目标权重,并降低目标固态硬盘的控制器的提取频率,其中,提取频率为控制器从提交队列提取待执行命令的频率。
也就是说,当从内存中获取到的目标权值为0时,表示当前没有给主机发送过告警消息,因此需要发送告警信息。进一步的,在告警信息发送完成后,将内存中的目标权值更新为1,并且降低目标固态硬盘的控制器从提交队列提取待执行命令的频率。这是因为,在第一整体占用率达到第一预设阈值的情况下,说明完成队列已经临近堵塞,此时为了避免完成队列发生堵塞,根据图1的队列机制,可以降低目标固态硬盘的控制器从提交队列提取待执行命令的频率。由此,可以协调NVME SSD与主机CPU之间的数据处理能力,避免完成队列堵塞,NVME SSD长时间高负荷工作。
S3042,在监测结果为发送告警信息的情况下,继续检测目标固态硬盘中每个完成队列对应的占用率。
这是因为,在监测结果为当前已经发送告警信息的情况下,说明已经进行了上述步骤S3042,已经降低了目标固态硬盘的控制器从提交队列提取待执行命令的频率,因此只需继续监测目标固态硬盘中每个完成队列对应的占用率即可。
本实施例提供的固态硬盘的监测方法,在第一整体占用率达到第一预设阈值的情况下确定触发告警机制生效,并查询当前是否发送告警信息,得到监测结果,其中监测结果包括发送告警信息以及未发送告警信息,在未发送告警信息的情况下,需要更新目标权值及降低目标固态硬盘的控制器的提取频率,由此可以协调NVME SSD与主机CPU之间的数据处理能力,避免完成队列堵塞;而在发送告警信息的情况下,因为之前已经降低了目标固态硬盘的控制器的提取频率,则无需重复处理,只需继续监测目标固态硬盘中每个完成队列对应的占用率即可。也就是说,以是否发送告警消息分为两种不同的情况进行处理,由此可以避免重复发送告警信息。
在本实施例中提供了一种固态硬盘的监测方法,可用于上述的计算机设备,如手机、平板电脑等,图4是根据本发明一些实施例的又一固态硬盘检测方法的流程示意图,如图4所示,该流程包括如下步骤:
步骤S401,获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S402,监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的。详细请参见图3所示实施例的步骤S302,在此不再赘述。
步骤S403,利用监测结果确定目标固态硬盘的调控策略。详细请参见图3所示实施例的步骤S303,在此不再赘述。
步骤S404,按照调控策略执行相应的调控操作。详细请参见图3所示实施例的步骤S304,在此不再赘述。
步骤S405,监测目标固态硬盘中每个完成队列对应的第二占用率。
与上述第一占用率相似,第二占用率可以理解为:完成队列实际存放的指令执行结果的第一数量与完成队列能够存放的指令执行结果的第二数量的比值;还可以理解为:完成队列实际存放的指令执行结果的所占的空间与完成队列总空间的比值。
步骤S406,基于每个完成队列的第二占用率计算第二整体占用率。
与上述第一整体占用率相似,当目标固态硬盘包括一个完成队列时,将该完成队列的第二占用率作为第二整体占用率;当目标固态硬盘包括多个完成队列时,根据每个完成队列的第二占用率采用预设的算法计算第二整体占用率。
步骤S407,在第二整体占用率达到占用率上限的情况下,暂停目标固态硬盘的控制器从提交队列中提取待执行命令。
在本实施例中,占用率上限可以在计算机设备中事先设置,示例的,占用率上限可以为100%。
在第二整体占用率达到占用率上限的情况下,说明完成队列已经堵塞,根据图1的队列机制,需要暂停目标固态硬盘的控制器从提交队列中提取待执行命令,避免堵塞更加严重;并且由于已经暂停了目标固态硬盘的控制器从提交队列中提取待执行命令,随着时间的推移,完成队列中的第二整体占用率会下降,即完成队列中的堵塞情况可以得到缓解。
由此可见,本实施例提供的固态硬盘的监测方法,在按照调控策略执行相应的调控操作之后,通过监测目标固态硬盘中每个完成队列对应的第二占用率,基于每个完成队列的第二占用率计算第二整体占用率,在第二整体占用率达到占用率上限的情况下,暂停目标固态硬盘的控制器从提交队列中提取待执行命令。由此不仅可以完成队列临近堵塞时采用降低目标固态硬盘的控制器从提交队列提取待执行命令的频率的方法预防堵塞,还可以堵塞发生时,通过暂停目标固态硬盘的控制器从提交队列中提取待执行命令的方法缓解堵塞。
在本实施例中提供了一种固态硬盘的监测方法,可用于上述的计算机设备,如手机、平板电脑等,图5是根据本发明一些实施例的再一固态硬盘检测方法的流程示意图,如图5所示,该流程包括如下步骤:
步骤S501,获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘。详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S502,监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据目标固态硬盘中完成队列的第一整体占用率触发的。详细请参见图3所示实施例的步骤S302,在此不再赘述。
步骤S503,利用监测结果确定目标固态硬盘的调控策略。详细请参见图3所示实施例的步骤S303,在此不再赘述。
步骤S504,按照调控策略执行相应的调控操作。详细请参见图3所示实施例的步骤S304,在此不再赘述。
步骤S505,监测目标固态硬盘中每个完成队列对应的第二占用率。详细请参见图4所示实施例的步骤S405,在此不再赘述。
步骤S506,基于每个完成队列的第二占用率计算第二整体占用率。详细请参见图4所示实施例的步骤S406,在此不再赘述。
步骤S507,在第二整体占用率达到占用率上限的情况下,暂停目标固态硬盘的控制器从提交队列中提取待执行命令。详细请参见图4所示实施例的步骤S407,在此不再赘述。
步骤S508,监测目标固态硬盘中每个完成队列对应的第三占用率。
与上述第一占用率相似,第三占用率可以理解为:完成队列实际存放的指令执行结果的第一数量与完成队列能够存放的指令执行结果的第二数量的比值;还可以理解为:完成队列实际存放的指令执行结果的所占的空间与完成队列总空间的比值。
步骤S509,基于每个完成队列的第三占用率计算第三整体占用率。
与上述第一整体占用率相似,当目标固态硬盘包括一个完成队列时,将该完成队列的第三占用率作为第三整体占用率;当目标固态硬盘包括多个完成队列时,根据每个完成队列的第三占用率采用预设的算法计算第三整体占用率。
步骤S510,在第三整体占用率达到第二预设阈值的情况下,恢复目标固态硬盘的控制器从提交队列中提取待执行命令,并将预设指标的目标权重更新为预设值,其中,在目标权重为预设值时表示当前未告警信息。
在本实施例中,第二预设阈值可以在计算机设备中事先设置。具体的,第二预设阈值小于第一预设阈值。
这是因为,在暂停目标固态硬盘的控制器从提交队列中提取待执行命令之后,随着时间的推移,完成队列中的第二整体占用率会下降,完成队列中的堵塞情况可以得到缓解即第三整体占用率达到第二预设阈值,此时可以恢复目标固态硬盘的控制器从提交队列中提取待执行命令,由此可以保证IO正常运行不中断。
为了对本实施例固态硬盘的监测方法进行详细说明,给出一个具体的示例。图6是本发明固态硬盘检测方法一示例的流程示意图,如图6所示,固态硬盘的监测方法包括以下步骤:
1.在NVME SSD增加反压阈值(即上文的第一预设阈值)的设置,并设置启动反压阈值的开关。
2.开始监测NVME SSD的每个CQ占用率,计算所有CQ的占用率。监测频率设置定时每秒一次。“是否发送过告警消息”初始权值设为0,保存到NVME SSD控制器内存中。
3.当检测到所有CQ占用率达到设置的反压阈值:
a)首先判断是否发送过告警信息,如果没发送过,则通过NVME SSD控制器向主机发送告警消息,并将“是否发送过告警消息”权值设为1,更新到NVME SSD控制器的内存中。同时降低NVME SSD控制器向提交队列提取待执行命令的频率,例如将提取频率降低为原提取频率的50%,具体实施机制是以秒为单位,每隔一秒暂停/恢复NVME SSD控制器向SQ提取待执行命令。继续监测。
b)如果发送过告警信息,即“是否发送过告警消息”权值设为1,则继续监测。
4.继续监测,如果监测到CQ占用率达到100%,直接暂停NVME控制器向SQ提取待执行命令条目。此时主机只处理CQ中已完成IO指令的结果信息条目。
5.继续监测,待CQ占用率降到第二预设阈值(例如,比反压阈值低10%)后,恢复NVME SSD控制器向SQ提取待执行指令条目频率。同时“是否发送过告警消息”权值设为0,更新保存到NVME SSD控制器的内存中。
6.直到手动关闭反压开关,停止监测。
由此可见,本实施例的固态硬盘的监测方法具有如下有益效果:
(1)、在业务场景不追求存储设备的极限IO性能的情况下,本发明可有效保障数据安全与NVME SSD的设备稳定性。本实施例适用于对数据安全与硬件设备稳定性的要求高于追求极限IO性能的业务场景。
(2)、可避免NVME SSD的CQ阻塞,从而导致整个读写操作中断或报错。
(3)、反压阈值的启动开关可灵活控制。
在本实施例中还提供了一种固态硬盘的监测装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种固态硬盘的监测装置,如图7所示,包括:
获取模块701,用于获取硬盘监测任务,并基于硬盘监测任务确定待监测的目标固态硬盘。
监测模块702,用于监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,告警机制是根据固态硬盘中完成队列的占用率触发的。
确定模块703,用于利用监测结果确定目标固态硬盘的调控策略。
执行模块704,用于按照调控策略执行相应的调控操作。
在一些可选的实施方式中,监测模块702包括:
占用率获取单元,用于监测目标固态硬盘中每个完成队列对应的第一占用率。
计算单元,用于基于每个完成队列的第一占用率计算第一整体占用率。
处理单元,用于在第一整体占用率达到第一预设阈值的情况下,确定触发告警机制生效,并查询当前是否发送告警信息,得到监测结果。
在一些可选的实施方式中,处理单元单元包括:
目标权值获取子单元,用于从内存中获取告警信息对应预设指标的目标权值,其中,目标权值用于表示当前是否发送告警信息。
监测结果确定子单元,用于基于目标权重确定监测结果,其中,监测结果包括发送告警信息以及未发送告警信息。
在一些可选的实施方式中,执行模块704具体用于:在监测结果为发送告警信息的情况下,继续检测目标固态硬盘中每个完成队列对应的第一占用率。
在一些可选的实施方式中,执行模块704具体用于:在监测结果为未发送告警信息的情况下,发送告警信息;在确定告警信息发送完成后,更新目标权值,并降低目标固态硬盘的控制器的提取频率,其中,提取频率为控制器从提交队列提取待执行命令的频率。
在一些可选的实施方式中,在按照调控策略执行相应的调控操作之后,占用率获取单元还用于监测目标固态硬盘中每个完成队列对应的第二占用率;计算单元还用于基于每个完成队列的第二占用率计算第二整体占用率;处理单元还用于在第二整体占用率达到占用率上限的情况下,暂停目标固态硬盘的控制器从提交队列中提取待执行命令。
在一些可选的实施方式中,在暂停目标固态硬盘的控制器从提交队列中提取待执行命令之后,占用率获取单元还用于监测目标固态硬盘中每个完成队列对应的第三占用率,计算单元还用于基于每个完成队列的第三占用率计算第三整体占用率;处理单元还用于在第三整体占用率达到第二预设阈值的情况下,恢复目标固态硬盘的控制器从提交队列中提取待执行命令,并将预设指标的目标权重更新为预设值,其中,在目标权重为预设值时表示当前未告警信息。
本实施例中的固态硬盘的监测装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种计算机设备,具有上述图7所示的固态硬盘的监测装置。
请参阅图8,图8是本发明可选实施例提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种固态硬盘的监测方法,其特征在于,所述方法包括:
获取硬盘监测任务,并基于所述硬盘监测任务确定待监测的目标固态硬盘;
监测所述目标固态硬盘当前是否触发告警机制,得到监测结果,其中,所述告警机制是根据所述目标固态硬盘中完成队列的第一整体占用率触发的;
利用所述监测结果确定所述目标固态硬盘的调控策略;
按照所述调控策略执行相应的调控操作。
2.根据权利要求1所述的方法,其特征在于,所述监测目标固态硬盘当前是否触发告警机制,得到监测结果,包括:
监测目标固态硬盘中每个完成队列对应的第一占用率;
基于每个完成队列的第一占用率计算所述第一整体占用率;
在所述第一整体占用率达到第一预设阈值的情况下,确定触发告警机制生效,并查询当前是否发送告警信息,得到监测结果。
3.根据权利要求2所述的方法,其特征在于,所述查询当前是否发送告警信息,得到监测结果,包括:
从内存中获取所述告警信息对应预设指标的目标权值,其中,所述目标权值用于表示当前是否发送告警信息;
基于所述目标权重确定所述监测结果,其中,所述监测结果包括发送告警信息以及未发送告警信息。
4.根据权利要求3所述的方法,其特征在于,所述按照所述调控策略执行相应的调控操作,包括:
在所述监测结果为发送告警信息的情况下,继续检测所述目标固态硬盘中每个完成队列对应的第一占用率。
5.根据权利要求3所述的方法,其特征在于,所述按照所述调控策略执行相应的调控操作,包括:
在所述监测结果为未发送告警信息的情况下,发送告警信息;
在确定所述告警信息发送完成后,更新所述目标权值,并降低所述目标固态硬盘的控制器的提取频率,其中,所述提取频率为所述控制器从提交队列提取待执行命令的频率。
6.根据权利要求1所述的方法,其特征在于,在按照所述调控策略执行相应的调控操作之后,所述方法还包括:
监测所述目标固态硬盘中每个完成队列对应的第二占用率;
基于每个完成队列的第二占用率计算第二整体占用率;
在所述第二整体占用率达到占用率上限的情况下,暂停所述目标固态硬盘的控制器从提交队列中提取待执行命令。
7.根据权利要求6所述的方法,其特征在于,在暂停所述目标固态硬盘的控制器从提交队列中提取待执行命令之后,所述方法还包括:
监测所述目标固态硬盘中每个完成队列对应的第三占用率;
基于每个完成队列的第三占用率计算第三整体占用率;
在所述第三整体占用率达到第二预设阈值的情况下,恢复所述目标固态硬盘的控制器从提交队列中提取待执行命令,并将预设指标的目标权重更新为预设值,其中,在所述目标权重为预设值时表示当前未告警信息。
8.一种固态硬盘的监测装置,其特征在于,包括:
获取模块,用于获取硬盘监测任务,并基于所述硬盘监测任务确定待监测的目标固态硬盘;
监测模块,用于监测目标固态硬盘当前是否触发告警机制,得到监测结果,其中,所述告警机制是根据所述固态硬盘中完成队列的占用率触发的;
确定模块,用于利用所述监测结果确定所述目标固态硬盘的调控策略;
执行模块,用于按照所述调控策略执行相应的调控操作。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的固态硬盘的监测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的固态硬盘的监测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310436481.XA CN116483653A (zh) | 2023-04-21 | 2023-04-21 | 一种固态硬盘的监测方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310436481.XA CN116483653A (zh) | 2023-04-21 | 2023-04-21 | 一种固态硬盘的监测方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483653A true CN116483653A (zh) | 2023-07-25 |
Family
ID=87215033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310436481.XA Pending CN116483653A (zh) | 2023-04-21 | 2023-04-21 | 一种固态硬盘的监测方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483653A (zh) |
-
2023
- 2023-04-21 CN CN202310436481.XA patent/CN116483653A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9983812B1 (en) | Automated node failure detection in an active/hot-standby storage cluster | |
CN109873904B (zh) | 消息推送的用户消息状态上报处理方法、装置及存储介质 | |
EP2372521A2 (en) | Remote direct storage access | |
EP2454668B1 (en) | Feedback reporting from non-volatile block storage device to processing device | |
JP2012521042A (ja) | ウェブフロントエンドスロットリング | |
CN107544755B (zh) | 一种数据读写的控制方法和装置 | |
EP2916412A1 (en) | Method, apparatus and system for adjusting voltage of supercapacitor | |
TWI512490B (zh) | 擷取控制台訊息的系統及其方法及非暫態電腦可讀媒體 | |
US20160110251A1 (en) | Methods for managing failure of a solid state device in a caching storage | |
US11231987B1 (en) | Debugging of memory operations | |
US11137918B1 (en) | Administration of control information in a storage system | |
CN108874324B (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
US11860718B2 (en) | Register reading method and apparatus, device, and medium | |
WO2019140739A1 (zh) | 客户回访的判断方法、电子装置及计算机可读存储介质 | |
US10007638B2 (en) | Asynchronous notification including parameter values in serial advanced technology attachment protocol | |
WO2019140738A1 (zh) | 避免过度回访的方法、电子装置及计算机可读存储介质 | |
CN108667740B (zh) | 流量控制的方法、装置及系统 | |
CN109246234B (zh) | 一种镜像文件下载方法、装置、电子设备及存储介质 | |
CN109710187B (zh) | NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质 | |
CN106919479B (zh) | 一种嵌入式设备控制器的实时日志记录方法 | |
CN116483653A (zh) | 一种固态硬盘的监测方法、装置、计算机设备及存储介质 | |
CN112540933A (zh) | 缓存读写方法、装置及电子设备 | |
CN111159009A (zh) | 一种日志服务系统的压力测试方法及装置 | |
CN115981956A (zh) | Spdk服务进程监控方法、装置、设备、存储介质和程序产品 | |
CN112800003A (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 |