第三方商业公共服务平台 非政府政务服务网站

固态硬盘的流量控制方法和装置、存储介质及电子设备

更新时间:2026-09-21
固态硬盘的流量控制方法和装置、存储介质及电子设备 专利申请类型:实用新型专利;
地区:山东-济南;
源自:济南高价值专利检索信息库;

专利名称:固态硬盘的流量控制方法和装置、存储介质及电子设备

专利类型:实用新型专利

专利申请号:CN202411001590.X

专利申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
权利人地址:山东省济南市高新区港西路2177号港盛大厦4层401室

专利发明(设计)人:王琨,郭晓琳,王瑞,杨勇军

专利摘要:本申请实施例提供了一种固态硬盘的流量控制方法和装置、存储介质及电子设备,其中,该方法包括:获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量;在实际主机写带宽不为零的情况下,基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值;根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限;按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制。通过本申请,解决了相关技术中的固态硬盘的流量控制方法存在控制准确性低的问题。

主权利要求:
1.一种固态硬盘的流量控制方法,其特征在于,
包括:
获取被测硬盘在第一时间段内的实际主机写带宽、实际GC写带宽和GC平均有效数据量,其中,所述被测硬盘为NAND固态硬盘,所述GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值;
在所述实际主机写带宽不为零的情况下,基于单个可写入数据量和所述GC平均有效数据量,确定预期带宽比值,其中,所述单个可写入数据量为所述被测硬盘中的单个块的可写入的数据量,所述预期带宽比值为所述被测硬盘的主机写带宽和所述被测硬盘的主机写带宽与所述被测硬盘的GC写带宽的和的预期比值;
根据实际带宽比值和所述预期带宽比值,对所述被测硬盘的主机写带宽上限和所述被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,所述实际带宽比值为所述实际主机写带宽和所述实际主机写带宽与所述实际GC写带宽的和之间的比值;
按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第一时间段之后的第二时间段内的主机写和GC写进行流量控制。
2.根据权利要求1所述的方法,其特征在于,
所述在所述实际主机写带宽不为零的情况下,基于单个可写入数据量和所述GC平均有效数据量,确定预期带宽比值,包括:在所述实际主机写带宽不为零的情况下,将所述单个可写入数据量与所述GC平均有效数据量的差值除以所述单个可写入数据量的结果,确定为所述预期带宽比值。
3.根据权利要求2所述的方法,其特征在于,
所述在所述实际主机写带宽不为零的情况下,基于单个可写入数据量和所述GC平均有效数据量,确定预期带宽比值,还包括:根据所述被测硬盘中的空闲块的实际数量与所述被测硬盘中的空闲块的预期数量的差值,对所述预期带宽比值进行调整,得到调整的所述预期带宽比值,其中,所述预期带宽比值的调整方向与所述实际数量和所述预期数量的差值对应,所述预期带宽比值的调整幅度与所述实际数量和所述预期数量的差值的绝对值正相关。
4.根据权利要求3所述的方法,其特征在于,
所述根据所述被测硬盘中的空闲块的实际数量与所述被测硬盘中的空闲块的预期数量的差值,对所述预期带宽比值进行调整,得到调整的所述预期带宽比值,包括:将1与调整系数的和乘以所述预期带宽比值的结果,确定为调整的所述预期带宽比值,其中,所述调整系数为所述实际数量和所述预期数量的差值除以指定因子所得到的结果。
5.根据权利要求1所述的方法,其特征在于,
所述根据实际带宽比值和所述预期带宽比值,对所述被测硬盘的主机写带宽上限和所述被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,包括:在所述实际带宽比值大于所述预期带宽比值的情况下,调低所述被测硬盘的主机写带宽上限,得到所述目标主机写带宽上限;
在所述实际带宽比值小于所述预期带宽比值的情况下,调高所述被测硬盘的主机写带宽上限,得到所述目标主机写带宽上限;
将基准带宽与所述目标主机写带宽上限的差值,确定为所述目标GC写带宽上限,其中,所述基准带宽是用于进行带宽控制的参考带宽。
6.根据权利要求5所述的方法,其特征在于,
所述在所述实际带宽比值大于所述预期带宽比值的情况下,调低所述被测硬盘的主机写带宽上限,得到所述目标主机写带宽上限,包括:在所述实际带宽比值大于所述预期带宽比值、且所述实际带宽比值与所述预期带宽比值之间的比值小于或者等于第一指定比值的情况下,按照第一百分比调低所述被测硬盘的主机写带宽上限,得到所述目标主机写带宽上限,其中,所述被测硬盘的主机写带宽上限所调低的带宽值小于或者等于第一带宽阈值,所述第一指定比值大于1;
在所述实际带宽比值大于所述预期带宽比值、且所述实际带宽比值与所述预期带宽比值之间的比值大于所述第一指定比值的情况下,将所述预期带宽比值与所述基准带宽的乘积,确定为所述目标主机写带宽上限。
7.根据权利要求5所述的方法,其特征在于,
所述在所述实际带宽比值小于所述预期带宽比值的情况下,调高所述被测硬盘的主机写带宽上限,得到所述目标主机写带宽上限,包括:在所述实际带宽比值小于所述预期带宽比值、且所述实际带宽比值与所述预期带宽比值之间的比值大于或者等于第二指定比值的情况下,按照第二百分比调高所述被测硬盘的主机写带宽上限,得到所述目标主机写带宽上限,其中,所述被测硬盘的主机写带宽上限所调高的带宽值小于或者等于第二带宽阈值,所述第二指定比值小于1;
在所述实际带宽比值小于所述预期带宽比值、且所述实际带宽比值与所述预期带宽比值之间的比值小于所述第二指定比值的情况下,将所述预期带宽比值与所述基准带宽的乘积,确定为所述目标主机写带宽上限。
8.根据权利要求5所述的方法,其特征在于,
在所述将基准带宽与所述目标主机写带宽上限的差值,确定为所述目标GC写带宽上限之前,所述方法还包括:在实际写带宽大于所述基准带宽与第一比值的乘积的情况下,调高所述基准带宽,得到调整的所述基准带宽;
在所述实际写带宽小于所述基准带宽与第二比值的乘积的情况下,将所述基准带宽和所述实际写带宽的平均值,确定为调整的所述基准带宽;
在所述实际写带宽大于或者等于所述基准带宽与所述第二比值的乘积、且小于或者等于所述基准带宽与所述第一比值的情况下,调低所述基准带宽,得到调整的所述基准带宽;
其中,所述实际写带宽为所述实际主机写带宽与所述实际GC写带宽的和。
9.根据权利要求1所述的方法,其特征在于,
在所述根据实际带宽比值和所述预期带宽比值,对所述被测硬盘的主机写带宽上限和所述被测硬盘的GC写带宽上限进行调整之后,所述方法还包括:在所述被测硬盘中的空闲块的实际数量小于或者等于指定数量阈值的情况下,将所述目标主机写带宽上限的一半,确定为调整的所述目标主机写带宽上限,其中,对所述被测硬盘在所述第二时间段内的主机写进行流量控制是使用调整的所述目标主机写带宽上限执行的。
10.根据权利要求1所述的方法,其特征在于,
所述第二时间段被划分为多个子时间段,在所述第二时间段的流量控制开始时,所述目标主机写带宽上限和所述目标GC写带宽上限被均匀分配在所述多个子时间段中;
所述按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第一时间段之后的第二时间段内的主机写和GC写进行流量控制,包括:将所述多个子时间段中的每个子时间段作为当前子时间段分别执行以下的流量控制操作:在所述当前子时间段内的主机写数据量大于或者等于与所述当前子时间段对应的主机写带宽上限的情况下,暂停执行主机写操作;
在所述当前子时间段内的GC写数据量大于或者等于与所述当前子时间段对应的主机写带宽上限的情况下,暂停执行GC写操作。
11.根据权利要求10所述的方法,其特征在于,
所述按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第一时间段之后的第二时间段内的主机写和GC写进行流量控制,还包括:在从所述多个子时间段中的第一个子时间段至所述当前子时间段的主机写数据量小于所述目标主机写带宽上限的情况下,将所述第二时间段的剩余主机写带宽重新分配给所述当前子时间段之后的子时间段中,其中,所述剩余主机写带宽为所述目标主机写带宽上限与所述第一个子时间段至所述当前子时间段的主机写数据量的差值;
在从所述第一个子时间段至所述当前子时间段的GC写数据量小于所述目标GC写带宽上限的情况下,将所述第二时间段的剩余GC写带宽重新分配给所述当前子时间段之后的子时间段中,其中,所述剩余GC写带宽为所述目标GC写带宽上限与所述第一个子时间段至所述当前子时间段的GC写数据量的差值。
12.根据权利要求1所述的方法,其特征在于,
在按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第二时间段内的主机写和GC写进行流量控制的过程中,所述方法还包括:在所述第二时间段结束前,所述第二时间段内的主机写数据量大于或者等于所述目标主机写带宽上限、且所述第二时间段内的GC写数据量大于或者等于所述目标GC写带宽上限的情况下,重新为所述第二时间段分配主机写带宽和GC写带宽。
13.根据权利要求1至12中任一项所述的方法,其特征在于,
在所述获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量之后,所述方法还包括:在所述实际主机写带宽为零、且所述被测硬盘在所述第一时间段内的实际主机读带宽不为零的情况下,暂停执行GC写操作,将所述被测硬盘的主机写带宽上限设置为指定主机写带宽上限,并按照所述指定主机写带宽上限对所述被测硬盘在所述第二时间段内的主机写进行流量控制;
在所述实际主机写带宽为零、且所述被测硬盘在所述第一时间段内的实际主机读带宽为零的情况下,将所述被测硬盘的GC写带宽上限设置为指定GC写带宽上限,并按照所述指定GC写带宽上限对所述被测硬盘在所述第二时间段内的GC写进行流量控制。
14.一种固态硬盘的流量控制装置,其特征在于,
包括:
获取单元,用于获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,所述被测硬盘为与非NAND固态硬盘,所述GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值;
第一确定单元,用于在所述实际主机写带宽不为零的情况下,基于单个可写入数据量和所述GC平均有效数据量,确定预期带宽比值,其中,所述单个可写入数据量为所述被测硬盘中的单个块的可写入的数据量,所述预期带宽比值为所述被测硬盘的主机写带宽和所述被测硬盘的主机写带宽与所述被测硬盘的GC写带宽的和的预期比值;
第一调整单元,用于根据实际带宽比值和所述预期带宽比值,对所述被测硬盘的主机写带宽上限和所述被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,所述实际带宽比值为所述实际主机写带宽和所述实际主机写带宽与所述实际GC写带宽的和之间的比值;
控制单元,用于按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第一时间段之后的第二时间段内的主机写和GC写进行流量控制。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,
所述计算机程序/指令被处理器执行时实现权利要求1至13中任一项所述方法的步骤。
16.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机可读的存储介质包括存储的程序,其中,所述程序被处理器运行时执行权利要求1至13中任一项所述方法的步骤。
17.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至13中任一项所述的方法的步骤。 说明书 : 固态硬盘的流量控制方法和装置、存储介质及电子设备技术领域[0001] 本申请实施例涉及固态硬盘流量控制领域,具体而言,涉及一种固态硬盘的流量控制方法和装置、存储介质及电子设备。背景技术[0002] NAND(NotAND,是与非)固态硬盘是一种使用NAND闪存存储技术的固态硬盘,NAND的特性决定了闪存无法执行覆盖写操作,因此,GC(GarbageCollection,垃圾回收)模块用于清除无效数据并回收数据块,以保证主机写入操作的可持续性;当固态硬盘的空余空间较少时,需要保证GC生成空闲数据块的速度与主机写入消耗空闲数据块的速度相当。[0003] 相关技术中,设定一个基准带宽,根据空闲数据块的数量以及GC回收的平均有效数据量来计算GC写和主机写带宽比例,基于空闲数据块的数量调整权重因子(权重因子的调整方式是加或减一个固定值),根据基准带宽和权重因子确定GC写和主机写带宽。[0004] 通过上述方法能够得到较为稳定的GC写和主机写带宽,然而,上述方法对于不同的读写模式适应能力较差,固定的权重调节速度可能会导致在读写模式切换时出现调节过慢的情况。因此,相关技术中的固态硬盘的流量控制方法,存在控制准确性低的问题。发明内容[0005] 本申请实施例提供了一种固态硬盘的流量控制方法和装置、存储介质及电子设备,以至少解决相关技术中的固态硬盘的流量控制方法存在控制准确性低的问题。[0006] 根据本申请实施例的一个方面,提供了一种固态硬盘的流量控制方法,包括:获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,所述被测硬盘为与非NAND固态硬盘,所述GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值;在所述实际主机写带宽不为零的情况下,基于单个可写入数据量和所述GC平均有效数据量,确定预期带宽比值,其中,所述单个可写入数据量为所述被测硬盘中的单个块的可写入的数据量,所述预期带宽比值为所述被测硬盘的主机写带宽和所述被测硬盘的主机写带宽与所述被测硬盘的GC写带宽的和的预期比值;根据实际带宽比值和所述预期带宽比值,对所述被测硬盘的主机写带宽上限和所述被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,所述实际带宽比值为所述实际主机写带宽和所述实际主机写带宽与所述实际GC写带宽的和之间的比值;按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第一时间段之后的第二时间段内的主机写和GC写进行流量控制。[0007] 根据本申请实施例的另一个方面,提供了一种固态硬盘的流量控制装置,包括:获取单元,用于获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,所述被测硬盘为与非NAND固态硬盘,所述GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值;第一确定单元,用于在所述实际主机写带宽不为零的情况下,基于单个可写入数据量和所述GC平均有效数据量,确定预期带宽比值,其中,所述单个可写入数据量为所述被测硬盘中的单个块的可写入的数据量,所述预期带宽比值为所述被测硬盘的主机写带宽和所述被测硬盘的主机写带宽与所述被测硬盘的GC写带宽的和的预期比值;第一调整单元,用于根据实际带宽比值和所述预期带宽比值,对所述被测硬盘的主机写带宽上限和所述被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,所述实际带宽比值为所述实际主机写带宽和所述实际主机写带宽与所述实际GC写带宽的和之间的比值;控制单元,用于按照所述目标主机写带宽上限和所述目标GC写带宽上限,对所述被测硬盘在所述第一时间段之后的第二时间段内的主机写和GC写进行流量控制。[0008] 根据本申请实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一项方法实施例中的步骤。[0009] 根据本申请实施例的又一个方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。[0010] 根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。[0011] 通过本申请,为提高固态硬盘的流量控制方法的准确性,需要让GC生成空闲数据块的速度与主机写入消耗空闲数据块的速度相当,而在本实施例中,预期带宽比值为被测硬盘的主机写带宽和被测硬盘的GC写带宽的预期比值,而预期带宽比值基于单个可写入数据量与GC平均有效数据量得到,对于单个块而言,GC写带宽的可以回收的数据量为GC平均有效数据量,主机可写入的数据量为单个可写入数据量减去GC平均有效数据量得到的数据量,因此,基于单个可写入数据量与GC平均有效数据量得到的预期带宽比值,可以反映被测硬盘在第一时间段内的主机可写入带宽与GC可写入带宽的实际情况,而基于预期带宽比值确定主机写带宽上限和GC写带宽上限,并按照主机写带宽上限和GC写带宽上限对被测硬盘进行流量控制,可以在保证性能最大化的同时,避免带宽调整过慢的问题,进而解决了相关技术中的固态硬盘的流量控制方法存在控制准确性低的问题,提高了固态硬盘的流量控制的准确性。附图说明[0012] 图1是根据本申请实施例的一种可选的固态硬盘的流量控制方法的硬件环境示意图。[0013] 图2是根据本申请实施例的一种可选的固态硬盘的流量控制方法的流程示意图。[0014] 图3是根据本申请实施例的一种可选的固态硬盘的流量控制方法的示意图。[0015] 图4是根据本申请实施例的一种可选的固态硬盘的流量控制装置的示意图。[0016] 图5是根据本申请实施例的一种可选的固态硬盘的流量控制装置的结构框图。[0017] 图6是根据本申请实施例的一种可选的电子设备的计算机系统的结构框图。具体实施方式[0018] 下文中将参考附图并结合实施例来详细说明本申请的实施例。[0019] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。[0020] 本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图1是本申请实施例的一种固态硬盘的流量控制方法的服务器设备的硬件结构框图。如图1所示,服务器设备可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述服务器设备还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。[0021] 存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的固态硬盘的流量控制方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。[0022] 传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterfaceController,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(RadioFrequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。[0023] 可选的,本实施例中的固态硬盘的流量控制方法可以是服务器执行的,这里,服务器指的是服务器整体,包括服务器内需要执行固态硬盘的流量控制方法的相关部件以及处理器等;本实施例中的固态硬盘的流量控制方法也可以是由处理器102执行的。在本实施例的部分示例中,固态硬盘的流量控制方法以由服务器执行为例进行说明。[0024] 本实施例中的固态硬盘的流量控制方法可以应用到对NAND固态硬盘进行流量控制的场景。NAND固态硬盘是一种使用NAND闪存存储技术的固态硬盘,NAND固态硬盘需要专门的控制逻辑进行控制,FTL(FlashTranslationLayer,闪存转换层)维护一份由逻辑地址向物理地址映射的L2P(LogicaladdressToPhysicaladdress,逻辑地址到物理地址转换表,根据实际需要非对称地对逻辑块地址和物理块地址进行映射)表,以便进行寻址操作,在进行写入与读取操作时,需要同时对L2P表进行读取和更新等操作,NAND特性决定了闪存无法执行覆盖写操作,只有对一个闪存block(数据块)整体进行擦除后,这个闪存block才能够重新执行写入操作;闪存block中的有些数据,会随着逻辑数据改变会变为无效数据,依然占用物理空间,直至该block被擦除,所以NAND固态硬盘需要预留OP(Over‑Provisioning,预留空间)空间,并且FTL需要包含GC模块,清除无效数据并回收block,以保证主机写入操作的可持续性。这里,对NAND固态硬盘进行流量控制指的是主机对NAND固态硬盘进行读写操作以及NAND固态硬盘的GC模块清除无效数据并回收block过程中的流量控制。[0025] 当固态硬盘的空余空间较少时,FTL会启动GC,对一些block进行有效数据整理归纳后将其擦除,生成可写入的freeblock(空闲数据块),GC压力比较大时,需要保证GC生成freeblock的速度与主机写入消耗freeblock的速度相当,因此,需要引入针对主机写和GC的仲裁算法控制主机写与GC的流量;在长时间的随机写入之后,固态硬盘会进入稳态,此时则需要根据对主机写和GC的IOPS(Input/OutputPerSecond,每秒输入输出量)进行控制,使二者保持平衡,使主机读、写或者混合读写的IOPS在长时间内保持相对稳定。[0026] 相关技术中,提供了一种带宽权重仲裁方法,该方法首先设定一个基准带宽,根据空闲数据块的数量以及GC回收的平均有效数据量来计算GC写和主机写带宽比例,基于空闲数据块的数量调整权重因子(权重因子的调整方式是加或减一个固定值),根据基准带宽和权重因子确定GC写和主机写带宽;该方法无法保证在给定的带宽上限控制之下,GC写和主机写能够达到性能上限,同时,该方法对于不同的读写模式适应能力较差,固定的权重调节速度可能会导致在读写模式切换时出现调节过慢导致超时等问题。因此,相关技术中的固态硬盘的流量控制方法,存在控制准确性低的问题。[0027] 为至少解决部分上述问题,在本实施例中提供了一种固态硬盘的流量控制方法,图2是根据本申请实施例的一种可选的固态硬盘的流量控制方法的流程示意图,如图2所示,上述方法包括步骤S202至步骤S208。[0028] 步骤S202,获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,被测硬盘为与非NAND固态硬盘,GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值。[0029] 主机是计算机系统的核心部分,包括中央处理器、内存、输入输出设备等,固态硬盘与主机连接,主机通过固态硬盘来读取和写入数据,实现数据的存储和访问功能;实际主机写带宽用于表示主机在第一时间段内,由主机发送写命令后,由主机向被测硬盘实际处理写入的数据量;实际GC写带宽用于表示在第一时间段内GC模块对被测硬盘进行垃圾回收过程中实际写入的数据量。[0030] 可选的,在本实施例中,第一时间段的取值可以为1秒。[0031] GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值,示例性的,在第一时间段内,GC过程中处理了3个数据块,每个数据块可写入数据量为a,3个数据块分别包含的有效数据量为x、y、z,则GC平均有效数据量为(x+y+z)/3。[0032] 被测硬盘为与非NAND固态硬盘,对于NAND固态硬盘的相关解释在上文已有相关描述,在此不做赘述;对于上述带宽数据的获取方式可以是使用监控工具监测主机与被测硬盘的带宽使用情况得到,对于具体的监控工具在本实施例中不做限定。[0033] 步骤S204,在实际主机写带宽不为零的情况下,基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值,其中,单个可写入数据量为被测硬盘中的单个块的可写入的数据量,预期带宽比值为被测硬盘的主机写带宽和被测硬盘的主机写带宽与被测硬盘的GC写带宽的和的预期比值。[0034] 在实际主机写带宽为零的情况下,即,在被测硬盘在第一时间段内的实际主机写带宽为零的情况下,说明此时主机没有向被测硬盘写入数据,不会影响被测硬盘中空闲数据块的数量,此时不启动GC也不会导致被测硬盘中空闲数据块的数量减少,因此,此时可以暂停GC,当只存在主机读取被测硬盘的数据的情况下,可以优先进行主机读的数据传输。[0035] 在实际主机写带宽不为零的情况下,即,在被测硬盘在第一时间段内的实际主机写带宽不为零的情况下,说明此时主机向被测硬盘写入数据,会影响被测硬盘中空闲数据块的数量,此时需要对主机写带宽和GC写带宽进行控制,以使GC生成空闲数据块的速度与主机写入消耗空闲数据块的速度相当。[0036] 具体的,可以基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值;这里,单个可写入数据量为被测硬盘中的单个块的可写入的数据量,被测硬盘中包含一组数据块,每个数据块可写入的数据量为单个可写入数据量;预期带宽比值为被测硬盘的主机写带宽和被测硬盘的主机写带宽与被测硬盘的GC写带宽的和的预期比值,在后续的步骤中,需要根据预期带宽比值对被测硬盘的主机写带宽和被测硬盘的GC写带宽进行调整。[0037] 作为一种可选的方案,在实际主机写带宽不为零的情况下,将单个可写入数据量与GC平均有效数据量的差值除以单个可写入数据量的结果,确定为预期带宽比值。[0038] 单个可写入数据量为DFblk,GC平均有效数据量为DFsrc,设主机写的期望值为IOPS,总写带宽为IOPStot,则预期带宽比值为IOPS/IOPStot=(DFblk‑DFsrc)/DFblk。[0039] 这里,总写带宽IOPStot指的是总计写入带宽,是主机写带宽和GC写带宽之和。[0040] 步骤S206,根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,实际带宽比值为实际主机写带宽和实际主机写带宽与实际GC写带宽的和之间的比值。[0041] 在本实施例中,根据第一时间段内测得的实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,以使被测硬盘的主机写带宽上限和被测硬盘的主机写带宽上限与被测硬盘的GC写带宽上限的和之间的比值接近或等于预期带宽比值,进而使GC生成空闲数据块的速度与主机写入消耗空闲数据块的速度接近或者相同。[0042] 需要说明的是,对于被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限的调整,目的是为了使被测硬盘的主机写带宽上限和被测硬盘的主机写带宽上限与被测硬盘的GC写带宽上限的和之间的比值接近或等于预期带宽比值,即,使目标主机写带宽上限和目标主机写带宽上限与目标GC写带宽上限的和的比值接近或等于预期带宽比值;这里,调整的具体方式可以是通过调整被测硬盘的主机写带宽上限来实现的,也可以是通过调整被测硬盘的GC写带宽上限来实现的;示例性的,在实际带宽比值大于预期带宽比值时,可以增加被测硬盘的主机写带宽上限,可以减少被测硬盘的GC写带宽上限,还可以增加被测硬盘的主机写带宽上限的同时减少被测硬盘的GC写带宽上限,以使目标主机写带宽上限和目标主机写带宽上限与目标GC写带宽上限的和的比值接近或等于预期带宽比值。[0043] 可选的,对于被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限的调整幅度,可以是直接调整到目标主机写带宽上限和目标GC写带宽上限的比值等于预期带宽比值,这种调整方式的优势在于,在读写模式切换时,被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限可以快速收敛至对应当前读写模式的带宽比例,缺点在于,在实际带宽比值和预期带宽比值差别较大的情况下,会导致写带宽出现较大波动,影响写带宽的稳定性。[0044] 可选的,对于被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限的调整幅度,可以是基于实际带宽比值和预期带宽比值之间的差距,适应性地调整被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限;示例性的,在实际带宽比值和预期带宽比值之间的差距较大时,可以更大幅度地调整目标主机写带宽上限和目标GC写带宽上限,以使目标主机写带宽上限和目标GC写带宽上限之间的比值更快地接近或者等于预期带宽比值,防止对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限的调整过慢,导致被测硬盘中的空闲数据块过少或者出现超时的问题;在实际带宽比值和预期带宽比值之间的差距较小时,可以小幅度地调整目标主机写带宽上限和目标GC写带宽上限,避免写带宽出现较大波动。[0045] 步骤S208,按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制。[0046] 根据第一时间段内被测硬盘的相关数据,基于计算得到的目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第二时间段内的主机写和GC写进行流量控制,即,控制被测硬盘在第二时间段内的主机写带宽上限为目标主机写带宽上限,控制被测硬盘在第二时间段内的GC写带宽上限为目标GC写带宽上限。[0047] 需要说明的是,在本实施例中,写带宽上限是指单位时间内写入数据的数据量的上限值。[0048] 通过本申请提供的实施例,获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,被测硬盘为与非NAND固态硬盘,GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值;在实际主机写带宽不为零的情况下,基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值,其中,单个可写入数据量为被测硬盘中的单个块的可写入的数据量,预期带宽比值为被测硬盘的主机写带宽和被测硬盘的主机写带宽与被测硬盘的GC写带宽的和的预期比值;根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,实际带宽比值为实际主机写带宽和实际主机写带宽与实际GC写带宽的和之间的比值;按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制,解决了相关技术中的固态硬盘的流量控制方法存在控制准确性低的问题,提高了固态硬盘的流量控制的准确性。[0049] 作为一种可选的方案,在实际主机写带宽不为零的情况下,基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值,还包括S11。[0050] S11,根据被测硬盘中的空闲块的实际数量与被测硬盘中的空闲块的预期数量的差值,对预期带宽比值进行调整,得到调整的预期带宽比值,其中,预期带宽比值的调整方向与实际数量和预期数量的差值对应,预期带宽比值的调整幅度与实际数量和预期数量的差值的绝对值正相关。[0051] 当实际数量和预期数量的差值为正数时,预期带宽比值的调整为增大,且实际数量和预期数量的差值的绝对值越大,预期带宽比值的调整量越大;当实际数量和预期数量的差值为负数时,预期带宽比值的调整为减小,且实际数量和预期数量的差值的绝对值越大,预期带宽比值的调整量越大。[0052] 通过本申请提供的实施例,可以保证被测硬盘中的空闲块的数量的稳定,进而提高固态硬盘的流量控制方法的稳定性。[0053] 作为一种可选的方案,根据被测硬盘中的空闲块的实际数量与被测硬盘中的空闲块的预期数量的差值,对预期带宽比值进行调整,得到调整的预期带宽比值,包括S21。[0054] S21,将1与调整系数的和乘以预期带宽比值的结果,确定为调整的预期带宽比值,其中,调整系数为实际数量和预期数量的差值除以指定因子所得到的结果。[0055] 在本实施例中,被测硬盘中的空闲块的实际数量为nfree,被测硬盘中的空闲块的预期数量为ncrit,指定因子为nfac,这里,指定因子nfac为数据块相关因子,需要结合固态硬盘总共的数据块数量决定。[0056] 示例性的,设调整的预期带宽比值为r,则r=(1+(nfree‑ncrit)/nfac)*预期带宽比值。[0057] 通过本申请提供的实施例,在1与调整系数的和越高时,被测硬盘中的空闲块较多,得到的调整的预期带宽比值较高,即,增加了主机写带宽的上限;在1与调整系数的和越低时,被测硬盘中的空闲块较少,得到的调整的预期带宽比值较高,即,增加了主机写带宽的上限;通过上述步骤,在保证被测硬盘中空闲数据块的数量的稳定性的同时保证了主机写的性能的最大化。[0058] 作为一种可选的方案,根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,包括S31至S33。[0059] S31,在实际带宽比值大于预期带宽比值的情况下,调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限。[0060] S32,在实际带宽比值小于预期带宽比值的情况下,调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限。[0061] S33,将基准带宽与目标主机写带宽上限的差值,确定为目标GC写带宽上限,其中,基准带宽是用于进行带宽控制的参考带宽。[0062] 在本实施例中,通过调整被测硬盘的主机写带宽上限来对被测硬盘的主机写带宽上限与被测硬盘的GC写带宽上限的比值进行调整,以使第二时间段内的被测硬盘的主机写带宽上限和被测硬盘的主机写带宽上限与被测硬盘的GC写带宽上限的和的比值相比第一时间段内的实际带宽比值更加接近预期带宽比值。[0063] 在实际带宽比值大于预期带宽比值的情况下,调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限;在实际带宽比值小于预期带宽比值的情况下,调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限;这里,被测硬盘的主机写带宽上限的调整的值的大小可以是预先设定好的固定值,也可以是基于实际带宽比值与预期带宽比值的差值确定的,例如,被测硬盘的主机写带宽上限的调整的值的大小可以与实际带宽比值与预期带宽比值的差值的大小正相关。[0064] 在得到目标主机写带宽上限后,可以将基准带宽减去目标主机写带宽上限,得到目标GC写带宽上限,这里,基准带宽是用于进行带宽控制的预先设定好的参考带宽。[0065] 通过本申请提供的实施例,根据实际带宽比值与预期带宽比值之间的情况调整主机写带宽上限,可以准确地对目标主机写带宽上限进行调整,进而提高得到的目标主机写带宽上限和目标GC写带宽上限的准确性。[0066] 作为一种可选的方案,在实际带宽比值大于预期带宽比值的情况下,调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限,包括S41至S42。[0067] S41,在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于或者等于第一指定比值的情况下,按照第一百分比调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限,其中,被测硬盘的主机写带宽上限所调低的带宽值小于或者等于第一带宽阈值,第一指定比值大于1。[0068] S42,在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于第一指定比值的情况下,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0069] 可选的,第一指定比值取值为1.1。[0070] 示例性的,设实际主机写带宽为BWhost,实际GC写带宽为BWGC,预期带宽比值为r,第一百分比为cdec%;在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于或者等于第一指定比值的情况下,即,BWhost与BWGC之比大于r,且(BWhost/BWGC)/r≤1.1时,按照cdec%调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限,被测硬盘的主机写带宽上限所调低的带宽值小于或者等于第一带宽阈值。[0071] 在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于第一指定比值的情况下,即,BWhost与BWGC之比大于r,且(BWhost/BWGC)/r>1.1时,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0072] 通过本申请提供的实施例,在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的差距过大时,调整目标主机写带宽上限快速收敛至对应于预期带宽比值,可以防止主机写带宽上限和GC写带宽上限调整过慢导致被测硬盘中空闲块过少或超时的问题出现。[0073] 作为一种可选的方案,在实际带宽比值小于预期带宽比值的情况下,调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限,包括S51至S52。[0074] S51,在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于或者等于第二指定比值的情况下,按照第二百分比调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限,其中,被测硬盘的主机写带宽上限所调高的带宽值小于或者等于第二带宽阈值,第二指定比值小于1。[0075] S52,在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于第二指定比值的情况下,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0076] 可选的,第一指定比值取值为0.9。[0077] 示例性的,设实际主机写带宽为BWhost,实际GC写带宽为BWGC,预期带宽比值为r,第一百分比为cinc%;在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于或者等于第一指定比值的情况下,即,BWhost与BWGC之比小于r,且(BWhost/BWGC)/r≥1.1时,按照cinc%调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限,被测硬盘的主机写带宽上限所调高的带宽值小于或者等于第二带宽阈值。[0078] 在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于第一指定比值的情况下,即,BWhost与BWGC之比小于r,且(BWhost/BWGC)/r<0.9时,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0079] 通过本申请提供的实施例,在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的差距过大时,调整目标主机写带宽上限快速收敛至对应于预期带宽比值,可以防止主机写带宽上限和GC写带宽上限调整过慢导致被测硬盘中空闲块过多的问题出现,在快速调整的同时保证性能最大化。[0080] 作为一种可选的方案,在将基准带宽与目标主机写带宽上限的差值,确定为目标GC写带宽上限之前,方法还包括S61至S63。[0081] S61,在实际写带宽大于基准带宽与第一比值的乘积的情况下,调高基准带宽,得到调整的基准带宽。[0082] S62,在实际写带宽小于基准带宽与第二比值的乘积的情况下,将基准带宽和实际写带宽的平均值,确定为调整的基准带宽。[0083] S63,在实际写带宽大于或者等于基准带宽与第二比值的乘积、且小于或者等于基准带宽与第一比值的情况下,调低基准带宽,得到调整的基准带宽。[0084] 其中,实际写带宽为实际主机写带宽与实际GC写带宽的和。[0085] 在本实施例中,实际写带宽为实际主机写带宽与实际GC写带宽的和,在将基准带宽与目标主机写带宽上限的差值,确定为目标GC写带宽上限之前,基于实际写带宽的大小确定基准带宽。[0086] 在实际写带宽大于基准带宽与第一比值的乘积的情况下,即,在第一时间段内的实际写带宽较大的情况下,需要适当调高基准带宽,使得调整的基准带宽不会低于实际写带宽。[0087] 示例性的,第一比值为C0,基准带宽为BWbench,实际写带宽为BWreal,这里,C0为小于1且趋近于1的正实数,如0.99;在BWreal>C0*Wbench的情况下,调高基准带宽。[0088] 在实际写带宽小于基准带宽与第二比值的乘积的情况下,即,在第一时间段内的实际写带宽较小的情况下,需要适当调低基准带宽,使得调整后的基准带宽不会过分超出实际写带宽,否则,后续计算出的目标主机写带宽上限和目标GC写带宽上限会过高,导致读写超时等问题。[0089] 示例性的,第一比值为C1,基准带宽为BWbench,实际写带宽为BWreal,这里,C1为比例系数,决定了执行当前步骤的基准带宽调整时机,C1为小于C0的正实数;在BWreal<C1*Wbench的情况下,将基准带宽和实际写带宽的平均值,确定为调整的基准带宽,即,对基准带宽和实际写带宽做平均,以使调整的基准带宽快速逼近实际写带宽。[0090] 在实际写带宽大于或者等于基准带宽与第二比值的乘积、且小于或者等于基准带宽与第一比值的情况下,说明基准带宽略微偏高,此时调低基准带宽,使基准带宽更加接近实际写带宽。[0091] 通过本申请提供的实施例,可以快速收敛,得到稳定的、是用于当前写模式的基准带宽,调整的基准带宽近似等于达到当前读写模式硬件性能上限的实际写带宽,可以作为后续供仲裁主机写带宽与GC写带宽时的基准带宽。[0092] 作为一种可选的方案,在根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整之后,方法还包括S71。[0093] S71,在被测硬盘中的空闲块的实际数量小于或者等于指定数量阈值的情况下,将目标主机写带宽上限的一半,确定为调整的目标主机写带宽上限,其中,对被测硬盘在第二时间段内的主机写进行流量控制是使用调整的目标主机写带宽上限执行的。[0094] 在本实施例中,包括防主机写跌零机制,当主机与被测硬盘之间的读写模式发生变化时,如果固态硬盘的流量控制方法的调整速度过慢,被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限没有快速收敛至对应于当前读写模式的带宽比例时,可能会导致被测硬盘中的空闲数据块的数量变少,产生主机写入超时的问题,在这种情况下,被测硬盘中的空闲块(空闲数据块)的实际数量小于或等于危险阈值(指定数量阈值)时,此时可对预期带宽比值进行调整,通过减少预期带宽比值来维持被测硬盘中的空闲块数量的稳定。[0095] 需要说明的是,危险阈值(指定数量阈值)的小于预期数量的大小。[0096] 示例性地,在本实施例中,被测硬盘中的空闲块的危险阈值为ndnag,在被测硬盘中的空闲块的实际数量小于ndnag时,可通过将被测硬盘的主机写带宽上限减半,即,将目标主机写带宽上限的一半,确定为调整的目标主机写带宽上限,以使预期带宽比值减少,进而避免因为被测硬盘中的空闲块过少导致主机写入超时的问题出现。[0097] 通过本申请提供的实施例,可以有效地避免出现主机写带宽跌零导致主机写超时的问题出现,提高了固态硬盘的流量控制方法的稳定性。[0098] 作为一种可选的方案,第二时间段被划分为多个子时间段,在第二时间段的流量控制开始时,目标主机写带宽上限和目标GC写带宽上限被均匀分配在多个子时间段中。[0099] 按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制,包括S81。[0100] S81,将多个子时间段中的每个子时间段作为当前子时间段分别执行以下的流量控制操作:在当前子时间段内的主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,暂停执行主机写操作;在当前子时间段内的GC写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,暂停执行GC写操作。[0101] 在当前子时间段内的主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,说明前子时间段内的主机写数据量过大,暂停在当前子时间段内的主机写操作;在当前子时间段内的GC写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,说明前子时间段内的GC写数据量过大,暂停在当前子时间段内的GC写操作。[0102] 通过本申请提供的实施例,通过将第二时间段被划分为多个子时间段,对多个子时间段中的每个子时间段进行管理,可以有效地提高流量控制的精确性。[0103] 作为一种可选的方案,按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制,还包括S91至S92。[0104] S91,在从多个子时间段中的第一个子时间段至当前子时间段的主机写数据量小于目标主机写带宽上限的情况下,将第二时间段的剩余主机写带宽重新分配给当前子时间段之后的子时间段中,其中,剩余主机写带宽为目标主机写带宽上限与第一个子时间段至当前子时间段的主机写数据量的差值。[0105] S92,在从第一个子时间段至当前子时间段的GC写数据量小于目标GC写带宽上限的情况下,将第二时间段的剩余GC写带宽重新分配给当前子时间段之后的子时间段中,其中,剩余GC写带宽为目标GC写带宽上限与第一个子时间段至当前子时间段的GC写数据量的差值。[0106] 在本实施例中,设第二时间段为1s,第二时间段被划分为nt个子时间段,每个子时间段的时间区间长度为t,nt*t=1s,目标主机写带宽上限为BWhost,目标GC写带宽上限为BWGC,每个子时间段对应的主机写带宽上限为bwhost=BWhost/nt,每个子时间段对应的GC写带宽上限为bwGC=BWGC/nt,Trmn指的是在第二时间段内当前子时间段之后剩余的时间。[0107] 在从多个子时间段中的第一个子时间段至当前子时间段的主机写数据量(用表示)小于目标主机写带宽上限,且在当前子时间段内,主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,将第二时间段的剩余主机写带宽重新分配给当前子时间段之后的子时间段中,即,在 的情况下,对当前子时间段之后的子时间段对应的主机写带宽上限进行重新分配 。[0108] 在从第一个子时间段至当前子时间段的GC写数据量(用 表示)小于目标GC写带宽上限,且在当前子时间段内,主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,将第二时间段的剩余GC写带宽重新分配给当前子时间段之后的子时间段中,即,在 的情况下,对当前子时间段之后的子时间段对应的主机写带宽上限进行重新分配 。[0109] 通过本申请提供的实施例,通过将第二时间段划分为多个子时间段进行流量控制,可以使主机持续写,GC持续写,同时保证了延时不过高,实现了主机写与GC写数据量的比例固定的流量控制。[0110] 作为一种可选的方案,在按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第二时间段内的主机写和GC写进行流量控制的过程中,方法还包括S101。[0111] S101,在第二时间段结束前,第二时间段内的主机写数据量大于或者等于目标主机写带宽上限、且第二时间段内的GC写数据量大于或者等于目标GC写带宽上限的情况下,重新为第二时间段分配主机写带宽和GC写带宽。[0112] 在本实施例中,在第二时间段结束前,如果主机写数据量和GC写数据量均已达到对应的写带宽上限的情况下,为避免剩余时间内系统处理器空转,应继续分配带宽,此时可以计算主机写带宽和GC写带宽在下一个子时间段内的带宽上限,从而防止带宽在剩余时间内跌至0。[0113] 通过本申请提供的实施例,保证了在控制过程中系统处理器不会出现空转的情况,提高了固态硬盘的流量控制方法的稳定性。[0114] 作为一种可选的方案,在获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量之后,方法还包括S111至S112。[0115] S111,在实际主机写带宽为零、且被测硬盘在第一时间段内的实际主机读带宽不为零的情况下,暂停执行GC写操作,将被测硬盘的主机写带宽上限设置为指定主机写带宽上限,并按照指定主机写带宽上限对被测硬盘在第二时间段内的主机写进行流量控制。[0116] S112,在实际主机写带宽为零、且被测硬盘在第一时间段内的实际主机读带宽为零的情况下,将被测硬盘的GC写带宽上限设置为指定GC写带宽上限,并按照指定GC写带宽上限对被测硬盘在第二时间段内的GC写进行流量控制。[0117] 在实际主机写带宽为零、且被测硬盘在第一时间段内的实际主机读带宽不为零的情况下,固态硬盘只有读入数据的动作,不会影响固态硬盘内空闲块的数量,此时不启动GC不会导致空闲块数量减少,因此,对于只有读的情况,可以暂停GC,优先实施主机读,同时,将被测硬盘的主机写带宽上限设置为指定主机写带宽上限,并按照指定主机写带宽上限对被测硬盘在第二时间段内的主机写进行流量控制。[0118] 可选的,指定主机写带宽上限为50KDF(DataFrame,数据帧)/s。[0119] 在实际主机写带宽为零、且被测硬盘在第一时间段内的实际主机读带宽为零的情况下,说明此时主机没有读写动作,可以将被测硬盘的GC写带宽上限设置为指定GC写带宽上限,并按照指定GC写带宽上限对被测硬盘在第二时间段内的GC写进行流量控制,以对被测磁盘进行垃圾回收。[0120] 通过本申请提供的实施例,对于主机不同的读写模式,适应性地更改流量控制的方法,可以提高固态硬盘的流量控制方法的合理性。[0121] 下面结合可选示例对本申请中的固态硬盘的流量控制方法进行解释说明。[0122] 参见图3,图3是根据本申请实施例的一种可选的固态硬盘的流量控制方法的示意图,本实施例提供一种固态硬盘的流量控制方法,能够根据当前(第一时间段)的主机写IOPS(对应于上述实施例的实际主机写带宽)与GC速率(对应于上述实施例中的实际GC写带宽),对下一秒钟(第二时间段)的主机写IOPS以及GC速率进行流量控制,同时保证被测硬盘达到性能上限且性能和延时保持稳定,具体的,包括以下步骤1至步骤5。[0123] 步骤1,带宽统计,即对前几秒的主机写带宽、GC带宽等分别作统计。[0124] 步骤2,带宽配置,即根据统计数据,计算出一个基准带宽。[0125] 步骤3,读写模式自适应,即根据统计数据给出的不同读写模式,调整仲裁方式。[0126] 步骤4,带宽调整,即根据统计数据,计算下一步的主机写带宽与GC带宽上限。[0127] 步骤5,流量控制,即对主机写和GC进行流量控制。[0128] 参见图4,图4是根据本申请实施例的一种可选的固态硬盘的流量控制装置的示意图;本实施例还提供了一种基于上述流量控制方法的固态硬盘的流量控制装置,其包括以下三个部分。[0129] (一)统计模块。该模块对FTL成功处理的写命令和GC处理的数据量进行统计,以保证处理器在大量处理IO(input/output,输入输出)时的性能。[0130] (二)计算模块。该模块处理带宽统计数据,根据统计数据判断当前读写模式,计算主机写和GC的基准带宽和预期带宽上限,并且对一些特殊情况进行带宽的额外调整,保证基准带宽快速收敛;该模块也对流量控制中的秒级和次级时间区间的带宽上限作计算,以期实现秒级带宽上限的快速收敛以及平稳且精准的流量控制。[0131] (三)流量控制模块。该模块对主机写和GC进行流量控制,以保证延时和IO性能稳定性。[0132] 下面结合图3和图4对上述固态硬盘的流量控制方法进行说明。[0133] 步骤1,带宽统计,即利用统计模块对前几秒的主机写带宽、GC带宽和GC平均VDFC(GC平均有效数据量)分别作统计;具体地,在GC启动后,需要对之主机写带宽、主机读带宽以及GC带宽作统计,所需统计的带宽数值如下。[0134] 主机写带宽:即当前一秒钟内,由主机发送写命令后实际处理写入的DF(DataFrame,数据帧)量。[0135] 主机读带宽:即当前一秒钟内,由主机发送读命令后实际处理读取的DF量。[0136] GC带宽:即当前一秒钟内,GC过程中实际写入的数据量。[0137] 平均VDFC(GC平均有效数据量):由当前一秒钟内,GC处理过程中的有效数据量对有效数据量所处的数据块总数进行平均得到。[0138] 在GC启动后,带宽统计模块开始统计每秒内的上述带宽以及VDFC值,并将其传递给带宽处理模块。[0139] 步骤2,带宽配置,即利用步骤1中统计的带宽以及VDFC值,利用计算模块计算出一个基准带宽值。[0140] 基准带宽是对下一秒中带宽控制时的带宽参考值,其需要具备以下特点:要足够大,其值应当保证不低于CPU算力、后端物理带宽等达到瓶颈的带宽真实上限;不能过大,保证其不过分超出真实带宽上限,否则计算出的主机写与GC的预期带宽将会过高,可能导致I/O超时等问题。[0141] 计算基准带宽值的具体步骤包括以下步骤。[0142] (1)初始化时设定一个合理的基准后端写带宽初始值BWini,后端写带宽等于主机写带宽与GC写带宽的和,基准后端写带宽的初始值通过实际性能测试中的真实后端写带宽确定。[0143] (2)在基准后端写带宽初始值的基础上,根据当前统计模块所统计的真实后端写带宽最大值,对基准后端写带宽进行动态调节。[0144] 第一比值为C0,基准带宽为BWbench,实际写带宽为BWreal,这里,C0为小于1且趋近于1的正实数,如0.99;在BWreal>C0*Wbench的情况下,调高基准带宽。[0145] 第一比值为C1,这里,C1为比例系数,决定了执行当前步骤的基准带宽调整时机,C1为小于C0的正实数;在BWreal<C1*Wbench的情况下,将基准带宽和实际写带宽的平均值,确定为调整的基准带宽,即,对基准带宽和实际写带宽做平均,以使调整的基准带宽快速逼近实际写带宽。[0146] 在实际写带宽大于或者等于基准带宽与第二比值的乘积、且小于或者等于基准带宽与第一比值的情况下,说明基准带宽略微偏高,此时调低基准带宽,使基准带宽更加接近实际写带宽。[0147] 通过重复上述两步骤,可以快速收敛,得到稳定的、适用于当前写模式的基准后端写带宽值,此时,基准后端写带宽值近似等于达到当前读写模式硬件性能上限的真实后端写带宽值,可以作为供仲裁分配主机写带宽与GC带宽时的后端写带宽值。[0148] 步骤3,读写模式自适应,一般来说,根据host(主机)读写命令的不同,当前读写模式一般可以分为以下几种情况。[0149] (1)只有读。NANDSSD在只有读的情况下,由于host没有向NAND中写入数据,那么不会影响freeblock(空闲块)的数量,此时不启动GC不会导致freeblock减少。因此,对于只有读的情况,可以暂停GC,优先host读的IO。[0150] (2)只有写。存在host写的情况下,持续写入会导致freeblock数量降低,在低于freeblock阈值而启动GC的情况下,仲裁要保证GC产生freeblock的速率与host+GC写入消耗freeblock的速率相同。因此,此时算法需要常规作仲裁,给出GC和host写的带宽上限。[0151] (3)混合读写。存在host写,与第2种情况一致,算法需要常规作仲裁。[0152] (4)没有读写时,只设置GC带宽。[0153] 步骤4,带宽调整,即利用步骤1中的统计数据以及步骤2计算出的基准带宽,并根据3中给出的读写模式作自适应,然后通过计算模块计算下一秒的GC数据量上限和主机写入数据量上限。[0154] 若步骤3中给出模式为只有读,则暂停GC,并设置BWhost为一个小值,如50KDF/s。直接完成并开始执行步骤5。[0155] 若步骤3中给出模式为只有写或者混合读写,则正常执行之后的步骤。[0156] 利用步骤1给出的平均VDFC数量以及步骤2给出的基准后端写带宽,本步骤对下一秒内的GC与主机写数据量上限进行动态调节。稳态的特征为单位时间内主机写的DF量与GC生成的空闲DF量相同。基于此,期望的主机写IOPS可以通过GC的源数据量来计算:IOPS=IOPStot*(DFblk‑DFsrc)/DFblk,这里,主机IOPS指的是主机写的期望IOPS,总IOPS指的是总计写入IOPS,是单位时间内主机写入DF量与GC写入DF量之和,DFblk指的是单个block(数据块)的可写入DF量,DFsrc代表当前GC的平均每block源数据量。[0157] 计算写带宽与GC带宽的参考比例r,r=(1+(nfree‑ncrit)/nfac)*预期带宽比值,这里预期带宽比值即为(DFblk‑DFsrc)/DFblk,其中,被测硬盘中的空闲块的实际数量为nfree,被测硬盘中的空闲块的预期数量为ncrit,指定因子为nfac,这里,指定因子nfac为数据块相关因子,需要结合固态硬盘总共的数据块数量决定。[0158] 如果刚进入仲裁,需要利用初始基准后端带宽值对主机写带宽上限BWhost以及GC带宽上限BWGC进行初始化BWhost=BWini*(DFblk‑DFsrc)/DFblk,BWGC=BWini*DFsrc/DFblk,[0159] 其中,BWhost表示主机写带宽上限,BWGC表示GC带宽上限、DFblk表示单个block的可写入DF(数据帧)数据量、DFsrc表示当前GC的平均每block源数据量、BWini表示基准后端写带宽初始值(基准后端写带宽的初始值通过实际性能测试中的真实后端写带宽确定)。[0160] 设实际主机写带宽为BWhost,实际GC写带宽为BWGC,预期带宽比值为r,第一百分比为cdec%;在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于或者等于第一指定比值的情况下,即,BWhost与BWGC之比大于r,且(BWhost/BWGC)/r≤1.1时,按照cdec%调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限,被测硬盘的主机写带宽上限所调低的带宽值小于或者等于第一带宽阈值。[0161] 在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于第一指定比值的情况下,即,BWhost与BWGC之比大于r,且(BWhost/BWGC)/r>1.1时,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0162] 设实际主机写带宽为BWhost,实际GC写带宽为BWGC,预期带宽比值为r,第一百分比为cinc%;在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于或者等于第一指定比值的情况下,即,BWhost与BWGC之比小于r,且(BWhost/BWGC)/r≥1.1时,按照cinc%调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限,被测硬盘的主机写带宽上限所调高的带宽值小于或者等于第二带宽阈值。[0163] 在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于第一指定比值的情况下,即,BWhost与BWGC之比小于r,且(BWhost/BWGC)/r<0.9时,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0164] 第一比值为C0,基准带宽为BWbench,实际写带宽为BWreal,这里,C0为小于1且趋近于1的正实数,如0.99;在BWreal>C0*Wbench的情况下,调高基准带宽。[0165] 第一比值为C1,基准带宽为BWbench,实际写带宽为BWreal,这里,C1为比例系数,决定了执行当前步骤的基准带宽调整时机,C1为小于C0的正实数;在BWreal<C1*Wbench的情况下,将基准带宽和实际写带宽的平均值,确定为调整的基准带宽。[0166] 引入防IOPS跌零机制。被测硬盘中的空闲块的危险阈值为ndnag,在被测硬盘中的空闲块的实际数量小于ndnag时,可通过将被测硬盘的主机写带宽上限减半,即,将目标主机写带宽上限的一半,确定为调整的目标主机写带宽上限,以使预期带宽比值减少,进而避免因为被测硬盘中的空闲块过少导致主机写入超时的问题出现。[0167] 步骤5,流量控制,即对主机写和GC进行流量控制。[0168] 设第二时间段为1s,第二时间段被划分为nt个子时间段,每个子时间段的时间区间长度为t,nt*t=1s,目标主机写带宽上限为BWhost,目标GC写带宽上限为BWGC,每个子时间段对应的主机写带宽上限为bwhost=BWhost/nt,每个子时间段对应的GC写带宽上限为bwGC=BWGC/nt,Trmn指的是在第二时间段内当前子时间段之后剩余的时间。[0169] 在从多个子时间段中的第一个子时间段至当前子时间段的主机写数据量(用表示)小于目标主机写带宽上限,且在当前子时间段内,主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,将第二时间段的剩余主机写带宽重新分配给当前子时间段之后的子时间段中,即,在 的情况下,对当前子时间段之后的子时间段对应的主机写带宽上限进行重新分配 。[0170] 在从第一个子时间段至当前子时间段的GC写数据量(用 表示)小于目标GC写带宽上限,且在当前子时间段内,主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,将第二时间段的剩余GC写带宽重新分配给当前子时间段之后的子时间段中,即,在 的情况下,对当前子时间段之后的子时间段对应的主机写带宽上限进行重新分配 。[0171] 在第二时间段结束前,如果主机写数据量和GC写数据量均已达到对应的写带宽上限的情况下,即, 且 时,为避免剩余时间内系统处理器空转,应继续分配带宽,此时可以计算主机写带宽和GC写带宽在下一个子时间段内的带宽上限,从而防止带宽在剩余时间内跌至0;这样,取一个恰当的次级时间区间(子时间段)长度t,就可以保证主机持续写、GC持续写,并且保证延时不过高、系统处理器不空转,最终实现主机写与GC写数据量比例固定的流量控制。[0172] 可以理解地,常用的一些稳态流量控制算法,如固定带宽方法、带宽权重调整方法等,无法兼具带宽快速调整同时性能最大化的特点,在极端情况下会产生超时问题。与上述方法相比,本发明所提供的动态写仲裁策略及装置,能够在保证性能最大化的同时,保持秒级IOPS稳定;能够避免因为带宽调整过慢导致的freeblock过少或者超时等问题;在读写模式切换时,也能够快速反应,对主机写带宽和GC带宽做出及时且快速的调整。[0173] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。[0174] 在本实施例中还提供了一种固态硬盘的流量控制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。[0175] 图5是根据本申请实施例的一种可选的固态硬盘的流量控制装置的结构框图,如图5所示,该装置包括获取单元502、第一确定单元504、第一调整单元506以及控制单元508。[0176] 获取单元502,用于获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,被测硬盘为与非NAND固态硬盘,GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值。[0177] 第一确定单元504,用于在实际主机写带宽不为零的情况下,基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值,其中,单个可写入数据量为被测硬盘中的单个块的可写入的数据量,预期带宽比值为被测硬盘的主机写带宽和被测硬盘的主机写带宽与被测硬盘的GC写带宽的和的预期比值。[0178] 第一调整单元506,用于根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,实际带宽比值为实际主机写带宽和实际主机写带宽与实际GC写带宽的和之间的比值。[0179] 控制单元508,用于按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制。[0180] 需要说明的是,该实施例中的获取单元502可以用于执行上述步骤S202,该实施例中的第一确定单元504可以用于执行上述步骤S204,该实施例中的第一调整单元506可以用于执行上述步骤S206,该实施例中的控制单元508可以用于执行上述步骤S208。[0181] 通过本申请提供的实施例,获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量,其中,被测硬盘为与非NAND固态硬盘,GC平均有效数据量为被垃圾回收的数据块中的有效数据量的平均值;在实际主机写带宽不为零的情况下,基于单个可写入数据量和GC平均有效数据量,确定预期带宽比值,其中,单个可写入数据量为被测硬盘中的单个块的可写入的数据量,预期带宽比值为被测硬盘的主机写带宽和被测硬盘的主机写带宽与被测硬盘的GC写带宽的和的预期比值;根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整,得到目标主机写带宽上限和目标GC写带宽上限,其中,实际带宽比值为实际主机写带宽和实际主机写带宽与实际GC写带宽的和之间的比值;按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第一时间段之后的第二时间段内的主机写和GC写进行流量控制,解决了相关技术中的固态硬盘的流量控制方法存在控制准确性低的问题,提高了固态硬盘的流量控制的准确性。[0182] 可选的,第一确定单元包括:第一确定模块,在实际主机写带宽不为零的情况下,将单个可写入数据量与GC平均有效数据量的差值除以单个可写入数据量的结果,确定为预期带宽比值。[0183] 可选的,第一确定单元还包括:第一调整模块,用于根据被测硬盘中的空闲块的实际数量与被测硬盘中的空闲块的预期数量的差值,对预期带宽比值进行调整,得到调整的预期带宽比值,其中,预期带宽比值的调整方向与实际数量和预期数量的差值对应,预期带宽比值的调整幅度与实际数量和预期数量的差值的绝对值正相关。[0184] 可选的,第一调整模块包括:第一确定子模块,用于将1与调整系数的和乘以预期带宽比值的结果,确定为调整的预期带宽比值,其中,调整系数为实际数量和预期数量的差值除以指定因子所得到的结果。[0185] 可选的,第一调整单元包括:第二调整模块,用于在实际带宽比值大于预期带宽比值的情况下,调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限;第三调整模块,用于在实际带宽比值小于预期带宽比值的情况下,调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限;第二确定模块,用于将基准带宽与目标主机写带宽上限的差值,确定为目标GC写带宽上限,其中,基准带宽是用于进行带宽控制的参考带宽。[0186] 可选的,第二调整模块包括:第一调整子模块,用于在实际带宽比值大于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值小于或者等于第一指定比值的情况下,按照第一百分比调低被测硬盘的主机写带宽上限,得到目标主机写带宽上限,其中,被测硬盘的主机写带宽上限所调低的带宽值小于或者等于第一带宽阈值,第一指定比值大于1;第二确定子模块,用于在实际带宽比值大于第一指定比值的情况下,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0187] 可选的,第三调整模块包括:第二调整子模块,用于在实际带宽比值小于预期带宽比值、且实际带宽比值与预期带宽比值之间的比值大于或者等于第二指定比值的情况下,按照第二百分比调高被测硬盘的主机写带宽上限,得到目标主机写带宽上限,其中,被测硬盘的主机写带宽上限所调高的带宽值小于或者等于第二带宽阈值,第二指定比值小于1;第三确定子模块,用于在实际带宽比值小于第二指定比值的情况下,将预期带宽比值与基准带宽的乘积,确定为目标主机写带宽上限。[0188] 可选的,装置还包括:第二调整单元,用于在将基准带宽与目标主机写带宽上限的差值,确定为目标GC写带宽上限之前,在实际写带宽大于基准带宽与第一比值的乘积的情况下,调高基准带宽,得到调整的基准带宽;第二确定单元,用于在实际写带宽小于基准带宽与第二比值的乘积的情况下,将基准带宽和实际写带宽的平均值,确定为调整的基准带宽;第三调整单元,用于在实际写带宽大于或者等于基准带宽与第二比值的乘积、且小于或者等于基准带宽与第一比值的情况下,调低基准带宽,得到调整的基准带宽;其中,实际写带宽为实际主机写带宽与实际GC写带宽的和。[0189] 可选的,装置还包括:第三确定单元,用于在根据实际带宽比值和预期带宽比值,对被测硬盘的主机写带宽上限和被测硬盘的GC写带宽上限进行调整之后,在被测硬盘中的空闲块的实际数量小于或者等于指定数量阈值的情况下,将目标主机写带宽上限的一半,确定为调整的目标主机写带宽上限,其中,对被测硬盘在第二时间段内的主机写进行流量控制是使用调整的目标主机写带宽上限执行的。[0190] 可选的,第二时间段被划分为多个子时间段,在第二时间段的流量控制开始时,目标主机写带宽上限和目标GC写带宽上限被均匀分配在多个子时间段中;控制单元包括:执行模块,用于将多个子时间段中的每个子时间段作为当前子时间段分别执行以下的流量控制操作:在当前子时间段内的主机写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,暂停执行主机写操作;在当前子时间段内的GC写数据量大于或者等于与当前子时间段对应的主机写带宽上限的情况下,暂停执行GC写操作。[0191] 可选的,控制单元还包括:第一分配模块,用于在从多个子时间段中的第一个子时间段至当前子时间段的主机写数据量小于目标主机写带宽上限的情况下,将第二时间段的剩余主机写带宽重新分配给当前子时间段之后的子时间段中,其中,剩余主机写带宽为目标主机写带宽上限与第一个子时间段至当前子时间段的主机写数据量的差值;第二分配模块,用于在从第一个子时间段至当前子时间段的GC写数据量小于目标GC写带宽上限的情况下,将第二时间段的剩余GC写带宽重新分配给当前子时间段之后的子时间段中,其中,剩余GC写带宽为目标GC写带宽上限与第一个子时间段至当前子时间段的GC写数据量的差值。[0192] 可选的,装置还包括:分配单元,用于在按照目标主机写带宽上限和目标GC写带宽上限,对被测硬盘在第二时间段内的主机写和GC写进行流量控制的过程中,在第二时间段结束前,第二时间段内的主机写数据量大于或者等于目标主机写带宽上限、且第二时间段内的GC写数据量大于或者等于目标GC写带宽上限的情况下,重新为第二时间段分配主机写带宽和GC写带宽。[0193] 可选的,装置还包括:第一执行单元,用于在获取被测硬盘在第一时间段内的实际主机写带宽、实际垃圾回收GC写带宽和GC平均有效数据量之后,在实际主机写带宽为零、且被测硬盘在第一时间段内的实际主机读带宽不为零的情况下,暂停执行GC写操作,将被测硬盘的主机写带宽上限设置为指定主机写带宽上限,并按照指定主机写带宽上限对被测硬盘在第二时间段内的主机写进行流量控制;第二执行单元,用于在实际主机写带宽为零、且被测硬盘在第一时间段内的实际主机读带宽为零的情况下,将被测硬盘的GC写带宽上限设置为指定GC写带宽上限,并按照指定GC写带宽上限对被测硬盘在第二时间段内的GC写进行流量控制。[0194] 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。[0195] 根据本申请的又一个方面,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行上述方法的程序代码。在这样的实施例中,参考图6,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理器601执行时,执行本申请实施例提供的各种功能。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。[0196] 参考图6,图6是根据本申请实施例的一种可选的电子设备的计算机系统的结构框图。[0197] 图6示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。如图6所示,计算机系统600包括中央处理器601(CentralProcessingUnit,CPU),其可以根据存储在只读存储器602(Read‑OnlyMemory,ROM)中的程序或者从存储部分608加载到随机访问存储器603(RandomAccessMemory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器603中,还存储有系统操作所需的各种程序和数据。中央处理器601、在只读存储器602以及随机访问存储器603通过总线604彼此相连。输入/输出接口605(Input/Output接口,即I/O接口)也连接至总线604。[0198] 以下部件连接至输入/输出接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CathodeRayTube,CRT)、液晶显示器(LiquidCrystalDisplay,LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至输入/输出接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。[0199] 特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理器601执行时,执行本申请的系统中限定的各种功能。[0200] 需要说明的是,图6示出的电子设备的计算机系统600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。[0201] 根据本申请的又一个方面,还提供了一种计算机可读存储介质,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法。[0202] 可选地,本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。[0203] 可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM(Read‑OnlyMemory,只读存储器)、RAM(RandomAccessMemory,随机存取器)、磁盘或光盘等。[0204] 上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。[0205] 在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。[0206] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。[0207] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0208] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0209] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

专利地区:山东

专利申请日期:2024-07-25

专利公开日期:2024-11-29

专利公告号:CN118519591B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
该专利所有权非本平台所有,我方无法提供专利权所有者联系方式,请勿联系我方。
电话咨询
到底部
搜本页
回顶部
搜索
搜本页
欢迎咨询

扫码可加微信,手机访问拨打咨询

欢迎咨询

欢迎咨询
数据加载中...