CN109062514B - 一种基于命名空间的带宽控制方法、装置和存储介质 - Google Patents
一种基于命名空间的带宽控制方法、装置和存储介质 Download PDFInfo
- Publication number
- CN109062514B CN109062514B CN201810935709.9A CN201810935709A CN109062514B CN 109062514 B CN109062514 B CN 109062514B CN 201810935709 A CN201810935709 A CN 201810935709A CN 109062514 B CN109062514 B CN 109062514B
- Authority
- CN
- China
- Prior art keywords
- read
- write
- bandwidth value
- write command
- bandwidth
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 239000007787 solid Substances 0.000 claims abstract description 50
- 238000004590 computer program Methods 0.000 claims description 11
- 230000003828 downregulation Effects 0.000 claims description 5
- 230000002222 downregulating effect Effects 0.000 claims description 4
- 230000003827 upregulation Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明实施例公开了一种基于命名空间的带宽控制方法、装置和计算机可读存储介质,依据读写命令中携带的命名空间识别码,将接收到的读写命令存储于相应的等待队列中;判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;若是,则执行当前读写命令,并将与当前读写命令相邻的下一个读写命令作为新的当前读写命令,重新返回上述判断步骤;若否,则可以将目标等待队列相邻的下一个等待队列作为新的目标等待队列,返回上述判断步骤。在该技术方案中,可以将固态硬盘划分成多个命名空间,通过对每个命名空间进行带宽的限制,可以达到防止带宽抢占的目的,降低了带宽剧烈抖动情况的发生,提升了固态硬盘的服务质量。
Description
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于命名空间的带宽控制方法、装置和计算机可读存储介质。
背景技术
在实际应用中,往往将SSD划分成不同的命名空间(Name Space,NS),不同的NS一般会被主机分配给不同的用户使用,这就可能出现主机对不同NS读写压力有差异的情况。
对于固态硬盘(Solid State Disk,SSD)而言,服务质量(Quality of Service,QOS)主要包括读写带宽以及带宽的抖动情况等。SSD的读写带宽是有限的,多用户同时大压力访问SSD的时候,会出现争抢读写带宽的情况。例如,当SSD中的某个目标NS被频繁访问时,该目标NS会占用较多的带宽值,当其它NS被访问时,由于目标NS对带宽的占用,可能会导致其它NS访问的延迟。并且由于带宽的抢占,会导致带宽分布不均匀,从而造成带宽的剧烈抖动。
可见,如何提升固态硬盘的服务质量,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种基于命名空间的带宽控制方法、装置和计算机可读存储介质,可以提升固态硬盘的服务质量。
为解决上述技术问题,本发明实施例提供一种基于命名空间的带宽控制方法,包括:
S11:依据读写命令中携带的命名空间识别码,将接收到的所述读写命令存储于相应的等待队列中;
S12:判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;若是,则执行S13;若否,则执行S14;
S13:执行所述当前读写命令,并将与所述当前读写命令相邻的下一个读写命令作为新的当前读写命令,返回所述S12;
S14:将与所述目标等待队列相邻的下一个等待队列作为新的目标等待队列,并返回所述S12。
可选的,所述目标带宽值的设定过程包括:
获取参数配置命令;其中,所述参数配置命令中携带有命名空间识别码及其对应的初始带宽值;
判断所述初始带宽值是否满足预设条件;
若是,则将所述初始带宽值作为所述命名空间识别码的目标带宽值;
若否,则将限定值作为所述命名空间识别码的目标带宽值。
可选的,在轮询完所有等待队列之后还包括:
依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态;其中,所述读写状态包括过载状态和空闲状态;
当固态硬盘当前的读写状态为过载状态时,则等比例下调各命名空间对应的目标带宽值;
当固态硬盘当前的读写状态为空闲状态时,则等比例上调各命名空间对应的目标带宽值。
可选的,各命名空间对应的带宽值包括写带宽值和读带宽值;
相应的,所述依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态包括:
计算所有命名空间对应的写带宽总值和读带宽总值;
根据如下公式,判断固态硬盘当前的读写状态,当下述公式成立时,则判定固态硬盘当前的读写状态为过载状态;当下述公式不成立时,则判定固态硬盘当前的读写状态为空闲状态;
WBW+RBW*8-75﹥3500;
其中,WBW表示所有命名空间的写带宽总值;RBW表示所有命名空间的读带宽总值。
可选的,在执行完所述当前读写命令之后还包括:
将所述当前读写命令从目标等待队列中删除。
本发明实施例还提供了一种基于命名空间的带宽控制装置,包括存储单元、判断单元、执行单元和轮询单元;
所述存储单元,用于依据读写命令中携带的命名空间识别码,将接收到的所述读写命令存储于相应的等待队列中;
所述判断单元,用于判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;若是,则触发所述执行单元;若否,则触发所述轮询单元;
所述执行单元,用于执行所述当前读写命令,并将与所述当前读写命令相邻的下一个读写命令作为新的当前读写命令,返回所述判断单元;
所述轮询单元,用于将与所述目标等待队列相邻的下一个等待队列作为新的目标等待队列,并返回所述判断单元。
可选的,针对于所述目标带宽值的设定过程,所述装置还包括获取单元、第一判断单元、第一设定单元和第二设定单元;
所述获取单元,用于获取参数配置命令;其中,所述参数配置命令中携带有命名空间识别码及其对应的初始带宽值;
所述第一判断单元,用于判断所述初始带宽值是否满足预设条件;若是,则触发所述第一设定单元;若否,则触发所述第二设定单元;
所述第一设定单元,用于将所述初始带宽值作为所述命名空间识别码的目标带宽值;
所述第二设定单元,用于将限定值作为所述命名空间识别码的目标带宽值。
可选的,还包括第二判断单元、下调单元和上调单元;
所述第二判断单元,用于在轮询单元轮询完所有等待队列之后,依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态;其中,所述读写状态包括过载状态和空闲状态;
所述下调单元,用于当固态硬盘当前的读写状态为过载状态时,则等比例下调各命名空间对应的目标带宽值;
所述上调单元,用于当固态硬盘当前的读写状态为空闲状态时,则等比例上调各命名空间对应的目标带宽值。
可选的,各命名空间对应的带宽值包括写带宽值和读带宽值;
相应的,所述第二判断单元具体用于计算所有命名空间对应的写带宽总值和读带宽总值;根据如下公式,判断固态硬盘当前的读写状态,当下述公式成立时,则判定固态硬盘当前的读写状态为过载状态;当下述公式不成立时,则判定固态硬盘当前的读写状态为空闲状态;
WBW+RBW*8-75﹥3500;
其中,WBW表示所有命名空间的写带宽总值;RBW表示所有命名空间的读带宽总值。
可选的,还包括删除单元;
所述删除单元,用于在执行单元执行完所述当前读写命令之后,将所述当前读写命令从目标等待队列中删除。
本发明实施例还提供了一种基于命名空间的带宽控制装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述基于命名空间的带宽控制方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于命名空间的带宽控制方法的步骤。
由上述技术方案可以看出,依据读写命令中携带的命名空间识别码,将接收到的读写命令存储于相应的等待队列中;判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;目标等待队列中当前读写命令占用的读写带宽值小于或等于预先设定的目标带宽值,则可以执行当前读写命令,并将与该当前读写命令相邻的下一个读写命令作为新的当前读写命令,重新返回上述判断步骤;目标等待队列中当前读写命令占用的读写带宽值大于预先设定的目标带宽值时,则说明目标等待队列所对应的命名空间占用的带宽值较高,为了降低该命名空间对带宽的抢占,此时可以将目标等待队列相邻的下一个等待队列作为新的目标等待队列,返回上述判断步骤。在该技术方案中,可以将固态硬盘划分成多个命名空间,通过对每个命名空间进行带宽的限制,可以达到防止带宽抢占的目的,降低了带宽剧烈抖动情况的发生,提升了固态硬盘的服务质量。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于命名空间的带宽控制方法的流程图;
图2为本发明实施例提供的一种基于命名空间的带宽控制装置的结构示意图;
图3为本发明实施例提供的一种基于命名空间的带宽控制装置的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种基于命名空间的带宽控制方法。图1为本发明实施例提供的一种基于命名空间的带宽控制方法的流程图,该方法包括:
S11:依据读写命令中携带的命名空间识别码,将接收到的读写命令存储于相应的等待队列中。
为了便于SSD区分不同的NS,可以对每个NS设置其对应的一个命名空间识别码(Namespace Identification,NSID)。
在本发明实施例中,为了有效的控制各NS对带宽的占用情况,可以针对于每个NS设置一个等待队列(Pending Queue,PQ)。
其中,等待队列可以用于存储读写命令。
当用户通过主机访问某个NS时,SSD则可以将接收到的读写命令先存储在与该NS对应的PQ中,然后再根据该NS当前对带宽的占用情况,决定是否执行读写命令,从而达到控制NS抢占带宽的目的。
在具体实现中,主机发送给SSD的读写命令中可以携带NSID,SSD依据该NSID可以查找到对应的PQ,从而将该读写命令存储于对应的PQ中。
S12:判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值。
由于SSD可以划分成多个NS,每个NS对应一个PQ,相应的,该SSD对应的PQ也有多个,为了实现对各PQ的有序管理,在本发明实施例中,可以采用轮询的方式对各等待队列进行判断。在具体实现中,可以先对第一个等待队列进行判断,此时第一个等待队列即为目标等待队列。
等待队列中包含的读写命令往往有多条,在具体实现中,可以从第一条读写命令开始,依次对目标等待队列中的读写命令进行判断。
目标带宽值可以用于表示NS对带宽占用的上限值。
为了实现带宽的均衡分配,可以将各NS对应的目标带宽值设置为同一取值。当然考虑到实际应用中,用户对不同NS访问的频率有所差异,因此,对于各NS而言,设置的目标带宽值也可以不同。
各NS目标带宽值的具体取值可以依据实际需求进行设定,本发明实施例对此不做限定。例如,可以将用户频繁访问的NS对应的目标带宽值设置的稍微高一些,将用户访问次数较低的NS对应的目标带宽值设置的稍微低一些。
当前读写命令占用的读写带宽值小于或等于预先设定的目标带宽值时,则说明目标等待队列所对应的NS对带宽的占用情况没有超过上限值,此时可以执行S13。
当前读写命令占用的读写带宽值大于预先设定的目标带宽值时,则说明目标等待队列所对应的NS对带宽的占用情况超过了上限值,为了限定该NS对带宽的占用情况,此时不再执行目标等待队列中的读写命令,而是进入S14,将下一个等待队列作为目标等待队列,对其进行判断。
在具体实现中,可以依据如下公式判断当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值,
FCMDSZ/(CT-LAT)≤OBW;
其中,FCMDSZ表示当前读写命令的大小,CT表示当前时间,LAT表示上次访问时间,OBW表示目标带宽值。
每执行完PQ中的一条读写命令,便可以对该PQ的LAT进行更新,从而依据该公式对下一条读写命令进行判断。
当上述公式成立时,则说明当前读写命令占用的读写带宽值小于或等于预先设定的目标带宽值;当上述公式不成立时,则说明当前读写命令占用的读写带宽值大于预先设定的目标带宽值。
以第一条读写命令为例,当第一条读写命令占用的读写带宽值小于或等于预先设定的目标带宽值时,则可以对下一条读写命令即第二条读写命令执行该判断步骤,此时第二条读写命令即为当前读写命令。依次类推,当出现大于目标带宽值的读写命令时,则说明目标等待队列所对应的NS占用的带宽值达到了上限值,此时不再执行目标等待队列中的读写命令,而是执行S14对下一个等待队列进行判断。
S13:执行当前读写命令,并将与当前读写命令相邻的下一个读写命令作为新的当前读写命令,返回S12。
在初始状态下,等待队列中第一个读写命令即为当前读写命令,当执行完第一个读写命令之后,此时与其相邻的下一个读写命令即为当前读写命令。
每执行完一条读写命令后,NS所占用的带宽值会发生相应的变化,因此,每执行完一条读写命令,便可以返回S12对下一条读写命令重新进行判断。
S14:将与目标等待队列相邻的下一个等待队列作为新的目标等待队列,并返回S12。
在初始状态下,所有等待队列中第一个等待队列即为目标等待队列,当执行完第一个等待队列之后,此时与其相邻的下一个等待队列即为目标等待队列。
在本发明实施例中,可以采用轮询的方式对各等待队列进行判断,即可以先对第一个等待队列进行判断,当第一个等待队列中出现读写带宽值大于目标带宽值的读写命令时,便停止执行第一个等待队列中的读写命令,开始对下一个等待队列进行判断。
当对所有的等待队列判断完毕之后,则说明已经轮询完所有的等待队列。为了实现对各NS占用带宽的实时监控,此时,可以将第一个等待队列作为目标等待队列,重新开始新一轮的轮询。
由上述技术方案可以看出,依据读写命令中携带的命名空间识别码,将接收到的读写命令存储于相应的等待队列中;判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;目标等待队列中当前读写命令占用的读写带宽值小于或等于预先设定的目标带宽值,则可以执行当前读写命令,并将与该当前读写命令相邻的下一个读写命令作为新的当前读写命令,重新返回上述判断步骤;目标等待队列中当前读写命令占用的读写带宽值大于预先设定的目标带宽值时,则说明目标等待队列所对应的命名空间占用的带宽值较高,为了降低该命名空间对带宽的抢占,此时可以将目标等待队列相邻的下一个等待队列作为新的目标等待队列,返回上述判断步骤。在该技术方案中,可以将固态硬盘划分成多个命名空间,通过对每个命名空间进行带宽的限制,可以达到防止带宽抢占的目的,降低了带宽剧烈抖动情况的发生,提升了固态硬盘的服务质量。
由上述介绍中可知,每个NS有其对应的目标带宽值,下面将对目标带宽值的设定过程展开介绍。
在具体实现中,用户可以通过主机向SSD发送用于设置带宽值的参数配置命令;其中,参数配置命令中携带有命名空间识别码及其对应的初始带宽值。SSD在接收到参数配置命令时,可以判断初始带宽值是否满足预设条件。
其中,预设条件可以包含每个NS所对应的带宽上限值和带宽下限值。
根据参数配置命令中携带的命名空间识别码,可以查找到相应的带宽上限值和带宽下限值。
当初始带宽值在其对应的带宽上限值和带宽下限值范围之内时,即可判定初始带宽值满足预设条件,此时可以将初始带宽值作为命名空间识别码的目标带宽值。
当初始带宽值不在其对应的带宽上限值和带宽下限值范围之内时,即可判定初始带宽值不满足预设条件,此时可以将限定值作为命名空间识别码的目标带宽值。
其中,限定值可以包括带宽上限值和带宽下限值。具体的,当初始带宽值超过其对应的带宽上限值时,则可以将该带宽上限值作为命名空间识别码的目标带宽值;当初始带宽值低于其对应的带宽下限值时,则可以将该带宽下限值作为命名空间识别码的目标带宽值。
各NS所对应的目标带宽值可以由用户根据需求进行设定,实现了目标带宽值的灵活设置。并且通过设置限定值,可以提升目标带宽值设置的合理性。
各NS对带宽的占用情况会随着等待队列中读写命令的执行情况发生相应的变化,在轮询完所有等待队列之后,可以依据各NS当前的带宽值,对SSD的读写状态进行评估,从而合理的调整目标带宽值的取值。
具体的,SSD可以依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态;读写状态可以包括过载状态和空闲状态。
其中,各命名空间对应的带宽值可以包括写带宽值和读带宽值。在具体实现中,可以计算所有命名空间对应的写带宽总值和读带宽总值;并根据如下公式,判断固态硬盘当前的读写状态,
WBW+RBW*8-75﹥3500;
其中,WBW表示所有命名空间的写带宽总值即所有命名空间的写带宽值之和;RBW表示所有命名空间的读带宽总值即所有命名空间的读带宽值之和。
上述公式是通过MATLAB数字图像处理软件对大量的测试结果进行数学分析得到的。当上述公式成立时,则可以判定固态硬盘当前的读写状态为过载状态。当上述公式不成立时,则可以判定固态硬盘当前的读写状态为空闲状态。
当固态硬盘当前的读写状态为过载状态时,则可以等比例下调各命名空间对应的目标带宽值;当固态硬盘当前的读写状态为空闲状态时,则可以等比例上调各命名空间对应的目标带宽值。
通过依据固态硬盘当前的读写状态,对目标带宽值进行合理的调整,使得目标带宽值的取值可以更加符合实际需求,提升了固态硬盘的服务质量。
在本发明实施例中,为了实现等待队列中各读写命令的有序执行,并且有效的控制等待队列占用的磁盘空间,当执行完当前读写命令之后,可以将该当前读写命令从目标等待队列中删除。
图2为本发明实施例提供的一种基于命名空间的带宽控制装置的结构示意图,装置包括存储单元21、判断单元22、执行单元23和轮询单元24;
存储单元21,用于依据读写命令中携带的命名空间识别码,将接收到的读写命令存储于相应的等待队列中;
判断单元22,用于判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;若是,则触发执行单元23;若否,则触发轮询单元24;
执行单元23,用于执行当前读写命令,并将与当前读写命令相邻的下一个读写命令作为新的当前读写命令,返回判断单元;
轮询单元24,用于将与目标等待队列相邻的下一个等待队列作为新的目标等待队列,并返回判断单元。
可选的,针对于目标带宽值的设定过程,装置还包括获取单元、第一判断单元、第一设定单元和第二设定单元;
获取单元,用于获取参数配置命令;其中,参数配置命令中携带有命名空间识别码及其对应的初始带宽值;
第一判断单元,用于判断初始带宽值是否满足预设条件;若是,则触发第一设定单元;若否,则触发第二设定单元;
第一设定单元,用于将初始带宽值作为命名空间识别码的目标带宽值;
第二设定单元,用于将限定值作为命名空间识别码的目标带宽值。
可选的,还包括第二判断单元、下调单元和上调单元;
第二判断单元,用于在轮询单元轮询完所有等待队列之后,依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态;其中,读写状态包括过载状态和空闲状态;
下调单元,用于当固态硬盘当前的读写状态为过载状态时,则等比例下调各命名空间对应的目标带宽值;
上调单元,用于当固态硬盘当前的读写状态为空闲状态时,则等比例上调各命名空间对应的目标带宽值。
可选的,各命名空间对应的带宽值包括写带宽值和读带宽值;
相应的,第二判断单元具体用于计算所有命名空间对应的写带宽总值和读带宽总值;根据如下公式,判断固态硬盘当前的读写状态,当下述公式成立时,则判定固态硬盘当前的读写状态为过载状态;当下述公式不成立时,则判定固态硬盘当前的读写状态为空闲状态;
WBW+RBW*8-75﹥3500;
其中,WBW表示所有命名空间的写带宽总值;RBW表示所有命名空间的读带宽总值。
可选的,还包括删除单元;
删除单元,用于在执行单元执行完当前读写命令之后,将当前读写命令从目标等待队列中删除。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,依据读写命令中携带的命名空间识别码,将接收到的读写命令存储于相应的等待队列中;判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;目标等待队列中当前读写命令占用的读写带宽值小于或等于预先设定的目标带宽值,则可以执行当前读写命令,并将与该当前读写命令相邻的下一个读写命令作为新的当前读写命令,重新返回上述判断步骤;目标等待队列中当前读写命令占用的读写带宽值大于预先设定的目标带宽值时,则说明目标等待队列所对应的命名空间占用的带宽值较高,为了降低该命名空间对带宽的抢占,此时可以将目标等待队列相邻的下一个等待队列作为新的目标等待队列,返回上述判断步骤。在该技术方案中,可以将固态硬盘划分成多个命名空间,通过对每个命名空间进行带宽的限制,可以达到防止带宽抢占的目的,降低了带宽剧烈抖动情况的发生,提升了固态硬盘的服务质量。
图3为本发明实施例提供的一种基于命名空间的带宽控制装置30的硬件结构示意图,包括:
存储器31,用于存储计算机程序;
处理器32,用于执行计算机程序以实现如上述基于命名空间的带宽控制方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述基于命名空间的带宽控制方法的步骤。
以上对本发明实施例所提供的一种基于命名空间的带宽控制方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动固态硬盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (8)
1.一种基于命名空间的带宽控制方法,其特征在于,包括:
S11:依据读写命令中携带的命名空间识别码,将接收到的所述读写命令存储于相应的等待队列中;
S12:判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;若是,则执行S13;若否,则执行S14;
S13:执行所述当前读写命令,并将与所述当前读写命令相邻的下一个读写命令作为新的当前读写命令,返回所述S12;
S14:将与所述目标等待队列相邻的下一个等待队列作为新的目标等待队列,并返回所述S12;
所述目标带宽值的设定过程包括:
获取参数配置命令;其中,所述参数配置命令中携带有命名空间识别码及其对应的初始带宽值;
判断所述初始带宽值是否满足预设条件;
若是,则将所述初始带宽值作为所述命名空间识别码的目标带宽值;
若否,则将限定值作为所述命名空间识别码的目标带宽值。
2.根据权利要求1所述的方法,其特征在于,在轮询完所有等待队列之后还包括:
依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态;其中,所述读写状态包括过载状态和空闲状态;
当固态硬盘当前的读写状态为过载状态时,则等比例下调各命名空间对应的目标带宽值;
当固态硬盘当前的读写状态为空闲状态时,则等比例上调各命名空间对应的目标带宽值。
3.根据权利要求2所述的方法,其特征在于,各命名空间对应的带宽值包括写带宽值和读带宽值;
相应的,所述依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态包括:
计算所有命名空间对应的写带宽总值和读带宽总值;
根据如下公式,判断固态硬盘当前的读写状态,当下述公式成立时,则判定固态硬盘当前的读写状态为过载状态;当下述公式不成立时,则判定固态硬盘当前的读写状态为空闲状态;
WBW+RBW*8-75﹥3500;
其中,WBW表示所有命名空间的写带宽总值;RBW表示所有命名空间的读带宽总值。
4.根据权利要求1-3任意一项所述的方法,其特征在于,在执行完所述当前读写命令之后还包括:
将所述当前读写命令从目标等待队列中删除。
5.一种基于命名空间的带宽控制装置,其特征在于,包括存储单元、判断单元、执行单元和轮询单元;
所述存储单元,用于依据读写命令中携带的命名空间识别码,将接收到的所述读写命令存储于相应的等待队列中;
所述判断单元,用于判断目标等待队列中当前读写命令占用的读写带宽值是否小于或等于预先设定的目标带宽值;若是,则触发所述执行单元;若否,则触发所述轮询单元;
所述执行单元,用于执行所述当前读写命令,并将与所述当前读写命令相邻的下一个读写命令作为新的当前读写命令,返回所述判断单元;
所述轮询单元,用于将与所述目标等待队列相邻的下一个等待队列作为新的目标等待队列,并返回所述判断单元;
针对于所述目标带宽值的设定过程,所述装置还包括获取单元、第一判断单元、第一设定单元和第二设定单元;
所述获取单元,用于获取参数配置命令;其中,所述参数配置命令中携带有命名空间识别码及其对应的初始带宽值;
所述第一判断单元,用于判断所述初始带宽值是否满足预设条件;若是,则触发所述第一设定单元;若否,则触发所述第二设定单元;
所述第一设定单元,用于将所述初始带宽值作为所述命名空间识别码的目标带宽值;
所述第二设定单元,用于将限定值作为所述命名空间识别码的目标带宽值。
6.根据权利要求5所述的装置,其特征在于,还包括第二判断单元、下调单元和上调单元;
所述第二判断单元,用于在轮询单元轮询完所有等待队列之后,依据各命名空间对应的带宽值,判断固态硬盘当前的读写状态;其中,所述读写状态包括过载状态和空闲状态;
所述下调单元,用于当固态硬盘当前的读写状态为过载状态时,则等比例下调各命名空间对应的目标带宽值;
所述上调单元,用于当固态硬盘当前的读写状态为空闲状态时,则等比例上调各命名空间对应的目标带宽值。
7.一种基于命名空间的带宽控制装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至4任意一项所述基于命名空间的带宽控制方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述基于命名空间的带宽控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810935709.9A CN109062514B (zh) | 2018-08-16 | 2018-08-16 | 一种基于命名空间的带宽控制方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810935709.9A CN109062514B (zh) | 2018-08-16 | 2018-08-16 | 一种基于命名空间的带宽控制方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109062514A CN109062514A (zh) | 2018-12-21 |
CN109062514B true CN109062514B (zh) | 2021-08-31 |
Family
ID=64687119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810935709.9A Active CN109062514B (zh) | 2018-08-16 | 2018-08-16 | 一种基于命名空间的带宽控制方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062514B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506431B (zh) * | 2020-12-03 | 2021-10-29 | 无锡众星微系统技术有限公司 | 基于磁盘设备属性的i/o指令调度方法及装置 |
CN115963977A (zh) * | 2021-10-08 | 2023-04-14 | 中山市江波龙电子有限公司 | 一种固态硬盘及其数据操作方法、装置及电子设备 |
CN116755639B (zh) * | 2023-08-18 | 2024-03-08 | 深圳大普微电子科技有限公司 | 闪存接口的性能评估方法及相关装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021869A (zh) * | 2007-03-15 | 2007-08-22 | 华中科技大学 | 一种数据价值定量评价方法 |
CN101493754A (zh) * | 2009-03-13 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 存储系统及其控制方法 |
CN102104614A (zh) * | 2009-12-22 | 2011-06-22 | 成都市华为赛门铁克科技有限公司 | 一种数据访问方法及装置 |
CN104834475A (zh) * | 2014-02-07 | 2015-08-12 | 广明光电股份有限公司 | 固态硬盘的读取方法 |
CN105204785A (zh) * | 2015-10-15 | 2015-12-30 | 中国科学技术大学 | 一种基于磁盘i/o队列的磁盘阵列写方式选择方法 |
CN105302497A (zh) * | 2015-11-24 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种缓存管理方法与系统 |
CN106233269A (zh) * | 2014-04-14 | 2016-12-14 | 微软技术许可有限责任公司 | 在存储器控制器中的精细粒度带宽供应 |
CN106462510A (zh) * | 2014-03-06 | 2017-02-22 | 伊姆西公司 | 具有独立直接接入大量固态存储资源的多处理器系统 |
CN106502580A (zh) * | 2016-09-26 | 2017-03-15 | 广州致远电子股份有限公司 | 一种深存储器以及测量仪器 |
US9665287B2 (en) * | 2015-09-18 | 2017-05-30 | Alibaba Group Holding Limited | Data deduplication using a solid state drive controller |
CN107368263A (zh) * | 2017-07-25 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种固态硬盘中优先权调度的方法和系统 |
CN107924289A (zh) * | 2015-10-26 | 2018-04-17 | 株式会社日立制作所 | 计算机系统和访问控制方法 |
CN108369530A (zh) * | 2016-12-05 | 2018-08-03 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
-
2018
- 2018-08-16 CN CN201810935709.9A patent/CN109062514B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021869A (zh) * | 2007-03-15 | 2007-08-22 | 华中科技大学 | 一种数据价值定量评价方法 |
CN101493754A (zh) * | 2009-03-13 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 存储系统及其控制方法 |
CN102104614A (zh) * | 2009-12-22 | 2011-06-22 | 成都市华为赛门铁克科技有限公司 | 一种数据访问方法及装置 |
CN104834475A (zh) * | 2014-02-07 | 2015-08-12 | 广明光电股份有限公司 | 固态硬盘的读取方法 |
CN106462510A (zh) * | 2014-03-06 | 2017-02-22 | 伊姆西公司 | 具有独立直接接入大量固态存储资源的多处理器系统 |
CN106233269A (zh) * | 2014-04-14 | 2016-12-14 | 微软技术许可有限责任公司 | 在存储器控制器中的精细粒度带宽供应 |
US9665287B2 (en) * | 2015-09-18 | 2017-05-30 | Alibaba Group Holding Limited | Data deduplication using a solid state drive controller |
CN105204785A (zh) * | 2015-10-15 | 2015-12-30 | 中国科学技术大学 | 一种基于磁盘i/o队列的磁盘阵列写方式选择方法 |
CN107924289A (zh) * | 2015-10-26 | 2018-04-17 | 株式会社日立制作所 | 计算机系统和访问控制方法 |
CN105302497A (zh) * | 2015-11-24 | 2016-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种缓存管理方法与系统 |
CN106502580A (zh) * | 2016-09-26 | 2017-03-15 | 广州致远电子股份有限公司 | 一种深存储器以及测量仪器 |
CN108369530A (zh) * | 2016-12-05 | 2018-08-03 | 华为技术有限公司 | 非易失性高速传输总线架构中数据读写命令的控制方法、设备和系统 |
CN107368263A (zh) * | 2017-07-25 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种固态硬盘中优先权调度的方法和系统 |
Non-Patent Citations (1)
Title |
---|
"大规模闪存固态存储并行访问控制关键技术的研究与实现";王蓉晖;《中国博士学位论文全文数据库 信息科技辑》;20170215(第02期);I137-29 * |
Also Published As
Publication number | Publication date |
---|---|
CN109062514A (zh) | 2018-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062514B (zh) | 一种基于命名空间的带宽控制方法、装置和存储介质 | |
CN110730136B (zh) | 一种实现流量控制的方法、装置、服务器及存储介质 | |
CN106452818B (zh) | 一种资源调度的方法和系统 | |
CN110196767B (zh) | 服务资源控制方法、装置、设备和存储介质 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
EP2437168A2 (en) | Method and device for balancing load of multiprocessor system | |
CN107656807B (zh) | 一种虚拟资源的自动弹性伸缩方法及装置 | |
US10712945B2 (en) | Deduplication processing method, and storage device | |
US9524314B2 (en) | Reducing lock occurrences in server/database systems | |
CN112689007B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN108874324B (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
CN110196770B (zh) | 云系统内存数据处理方法、装置、设备及存储介质 | |
CN111104303A (zh) | 一种服务器指标数据采集方法、装置和介质 | |
CN111858067A (zh) | 一种数据处理方法及装置 | |
CN108153584B (zh) | 一种用于确定目标网络设备需分配的线程数的方法与设备 | |
CN114785739A (zh) | 逻辑卷服务质量的控制方法、装置、设备及介质 | |
WO2015090044A1 (zh) | 一种数据扫描的方法及装置 | |
CN106502786A (zh) | 一种中断分配方法及装置 | |
EP3046029B1 (en) | Method and device for determining program performance interference model | |
CN109032787B (zh) | 一种任务分配方法及装置 | |
CN108804152B (zh) | 配置参数的调节方法及装置 | |
CN109815067A (zh) | 压力测试方法、装置、计算机设备及计算机可读存储介质 | |
CN110851286B (zh) | 线程管理方法、装置、电子设备及存储介质 | |
CN111930299B (zh) | 分配存储单元的方法及相关设备 | |
CN107861894B (zh) | NVMe协议的队列命令的执行方法、装置及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |