资源释放方法、装置、固态硬盘、电子设备和存储介质
文献发布时间:2023-06-29 06:30:04
技术领域
本申请涉及服务器技术领域,具体而言,涉及一种资源释放方法、装置、固态硬盘、电子设备和存储介质。
背景技术
随着新数据时代到来,5G、人工智能、大数据、区块链等新技术快速发展,数据存储量需要激增,对数据的存储性能有了更高的要求,SSD(Solid State Drives,固态硬盘)作为高性能的非易失存储介质得到广泛应用。
当前一些应用例如人工智能、深度学习、自动驾驶等不仅对性能有更高的要求,也对性能的稳定性提出了更高的要求,性能的稳定性也直接影响了互联网终端用户的体验,急需要在保证SSD高性能的前提下,提升SSD的性能稳定性。
SSD对HOST端下发的I/O命令的处理需要上下文资源来管理,在SSD固件的实现中,为了尽可能发挥CPU(central processing unit,中央处理器)、前端PCIe(peripheralcomponent interconnect express,高速串行计算机扩展总线标准)和后端闪存颗粒的能力,需要尽可能快的轮转上下文资源,尽可能增大上下文资源的并发度,因此在有限的上下文资源的条件下,必然会存在SSD固件内部每个I/O流程上存在上下文资源的不足,进而导致在时间维度上,不同时间段的上下文资源轮转情况不一致,例如a时段有充足的上下文资源,能够发挥较大的性能,b时段因没有上下文资源导致性能略有下降,导致HOST端的部分I/O的长尾延时激增或者性能的向下抖动。
因此,急需提出一种可以在时间维度上控制上下文资源利用和释放速度的资源释放方法。
发明内容
本申请提供一种资源释放方法、装置、固态硬盘、电子设备和存储介质,用于解决如何在时间维度上控制上下文资源利用和释放速度。
本申请提供一种资源释放方法,包括:
基于上下文管理的写buffer的大小及固态硬盘的最大写性能需求确定上下文资源的释放时间间隔;
基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度。
根据本申请提供的资源释放方法,所述基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度,包括:
在所述上下文资源释放模块的缓冲池中的上下文资源数量大于或等于最小目标上下文资源数量,且小于或等于最大目标上下文资源数量的情况下,设定定时器的定时时间等于所述释放时间间隔;
在从所述上下文资源释放模块的缓冲池中向所述I/O命令处理模块释放出一个上下文资源时,开启所述定时器;
在所述定时器达到定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块。
根据本申请提供的资源释放方法,所述在所述定时器达到定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块之后,还包括:
在所述上下文资源释放模块的缓冲池中的上下文资源数量大于所述最大目标上下文资源数量的情况下,减小所述定时器的定时时间;
在所述定时器达到减小后的定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块。
根据本申请提供的资源释放方法,所述在所述定时器达到定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块之后,还包括:
在所述上下文资源释放模块的缓冲池中的上下文资源数量小于所述最小目标上下文资源数量的情况下,增大所述定时器的定时时间;
在所述定时器达到增大后的定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块。
根据本申请提供的资源释放方法,所述从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块之后,还包括:
在所述I/O命令处理模块未获取所述从所述上下文资源释放模块的缓冲池中释放的上下文资源的情况下,将所述上下文资源添加到所述上下文资源释放模块的缓冲池中。
根据本申请提供的资源释放方法,所述基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度之前,还包括:
将所述上下文资源释放模块的缓冲池中的上下文资源的数量初始化为最小目标上下文资源数量。
本申请提供一种资源释放装置,包括:
确定模块,用于基于上下文管理的写buffer的大小及固态硬盘的最大写性能需求确定上下文资源的释放时间间隔;
释放模块,用于基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度。
本申请提供一种固态硬盘,包括控制芯片;
所述控制芯片中设置有所述的资源释放装置。
本申请提供一种计算机可读的存储介质,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行所述的资源释放方法。
本申请提供一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述的资源释放方法。
本申请提供的资源释放方法、装置、固态硬盘、电子设备和存储介质,先基于上下文管理的写buffer的大小及固态硬盘的最大写性能需求确定上下文资源的释放时间间隔;之后基于释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度,本申请提高的资源释放方法可以在时间维度上控制上下文资源的均匀释放保证性能稳定性和服务质量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的资源释放方法的固态硬盘的I/O处理流程;
图2是本申请提供的资源释放方法的流程示意图之一;
图3是本申请提供的资源释放装置的结构示意图;
图4是本申请提供的固态硬盘的结构示意图;
图5是本申请提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
具体地,本申请实施例提供的资源释放方法的执行主体可以为资源释放装置。资源释放装置可以为固态硬盘中控制芯片,或者控制芯片的组成部分,也可以通过软件形式体现,例如运行在固态硬盘的控制芯片中的控制程序。
固态硬盘一般包括控制芯片、缓存芯片和闪存芯片。控制芯片负责闪存芯片与外部数据接口之间的连接,以及控制各个闪存芯片的资源释放。缓存芯片用于快速承接外部数据。闪存芯片用于长期存储外部数据。例如当外部数据写入时,外部数据先存储到缓存芯片中,再写入闪存芯片。
固态硬盘内部采用并行机制。固态硬盘一般由多个独立通道组成,每个独立通道连接多个独立的闪存芯片,每个闪存芯片包括多个逻辑单元(Logical Unit,LUN)。每个逻辑单元是直接执行资源释放命令的最小单位。在本申请实施例中,资源释放方法是在各个通道内执行的。
当前通道为固态硬件中即将写入或者读取数据的通道。此处的主机设备可以为服务器或者个人计算机等。资源释放命令是主机设备的中央处理器下发的,用于控制对固态硬盘进行写入数据或者读取数据。一般来说,主机设备下发的资源释放命令是具有时间顺序的。现有技术中的固态硬盘也严格按照主机设备下发的命令顺序执行。
参考图1,图1为本申请实施例提供的资源释放方法的固态硬盘固件内部的I/O处理流程,I/O命令处理模块负责接收并处理HOST端下发的I/O命令,主要包括I/O命令的拆包、数据的DMA(Direct Memory Access,直接存储器访问)到固态硬盘内buffer中等操作,写请求响应模块则负责响应I/O命令处理模块的写请求,为写请求申请写入NAND flash的物理地址,当写请求响应模块累计够一定的写入量后给NAND发起写请求,上下文资源释放模块负责处理NAND写完做修改映射表的动作,并释放上下文资源给I/O命令处理模块,也即在固态硬盘固件内部,写buffer的上下文资源会从I/O命令处理模块流到写请求响应模块,再流到上下文资源释放模块,上下文资源释放模块再将写buffer的上下文资源释放给I/O命令处理模块。
因此在有限的上下文资源的条件下,必然会存在SSD固件内部每个I/O流程上存在上下文资源的不足,进而导致在时间维度上,不同时间段的上下文资源轮转情况不一致,例如a时段有充足的上下文资源,能够发挥较大的性能,b时段因没有上下文资源导致性能略有下降,导致HOST端的部分I/O的长尾延时激增或者性能的向下抖动
因此本申请为了解决以上技术问题,提供了一种可以在时间维度上控制上下文资源利用和释放速度的资源释放方法,通过先基于上下文管理的写buffer的大小及固态硬盘的最大写性能需求确定上下文资源的释放时间间隔;再基于释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度。
图2是本申请提供的资源释放方法的流程示意图之一,如图2所示,该方法包括步骤201和步骤202。
步骤201,基于上下文管理的写buffer的大小及固态硬盘的最大写性能需求确定上下文资源的释放时间间隔。
本实施例中,定义上下文管理的写buffer的大小为N,固态硬盘的最大写性能需求为X,则固态硬盘的最大写性能在下一秒内所需要的写buffer的数量Y=X/N,进而可确定出获取写buffer的上下文资源所需要的时间间隔T=1/Y,也即本实施例中上下文资源的释放时间间隔T=1/Y。
步骤202,基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度。
本实施例中,在上下文资源释放模块中设置一个缓冲池,用于控制上下文资源的释放。
具体地,所述基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度之前,还包括:
将所述上下文资源释放模块的缓冲池中的上下文资源的数量初始化为最小目标上下文资源数量。
本实施例中,固态硬盘上电时将上下文资源释放模块的缓冲池中的上下文资源数量初始化最小目标上下文资源数量个上下文资源,以保证上下文资源释放初期,可以通过缓冲池中初始化的最小目标上下文资源数量个上下文资源保障上下文资源的均匀释放。
此外,上下文资源释放模块中还设有一个用于监控上下文资源释放速度的上下文资源释放子模块,上下文资源释放子模块记录每一笔释放的上下文资源的时间戳,并开启定时器去记录各笔释放的上下文资源的时间长度,根据上下文资源所需的释放时间间隔及上下文资源释放模块的缓冲池中的上下文资源数量控制定时器的定时时间,在定时器达到该定时时间后,从下文资源释放模块的缓冲池中I/O命令处理模块释放一个新的上下文资源。
本申请实施例提供的资源释放方法,先基于上下文管理的写buffer的大小及固态硬盘的最大写性能需求确定上下文资源的释放时间间隔;之后基于释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度,本申请提高的资源释放方法可以在时间维度上控制上下文资源的均匀释放保证性能稳定性和服务质量。
需要说明的是,本申请每一个实施方式可以自由组合、调换顺序或者单独执行,并不需要依靠或依赖固定的执行顺序。
在一些实施例中,所述基于所述释放时间间隔、上下文资源释放模块的缓冲池中的上下文资源数量控制从所述上下文资源释放模块的缓冲池中向I/O命令处理模块释放的上下文资源的释放速度,包括:
在所述上下文资源释放模块的缓冲池中的上下文资源数量大于或等于最小目标上下文资源数量,且小于或等于最大目标上下文资源数量的情况下,设定定时器的定时时间等于所述释放时间间隔;
在从所述上下文资源释放模块的缓冲池中向所述I/O命令处理模块释放出一个上下文资源时,开启所述定时器;
在所述定时器达到定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块。
其中,最小目标上下文资源数量是缓冲池中初始化时设定的上下文资源的最小数量,最大目标上下文资源数量是在保证上下文资源均匀释放时缓冲池中所需要的上下文资源的最大数量。
本实施例中,允许缓冲池中的上下文资源数量h在一定的数量范围内波动,在a(即最小目标上下文资源数量)≤h≤b(即最大目标上下文资源数量)时,设定定时器的定时时间等于上下文资源所需的释放时间间隔,也即在上下文资源释放模块的缓冲池中向I/O命令处理模块释放出一个上下文资源后,开启定时时间等于上下文资源所需的释放时间间隔的定时器,在定时器达到定时时间后,重新再释放出一个上下文资源。
在一些实施例中,所述在所述定时器达到定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块之后,还包括:
在所述上下文资源释放模块的缓冲池中的上下文资源数量大于所述最大目标上下文资源数量的情况下,减小所述定时器的定时时间;
在所述定时器达到减小后的定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块。
本实施例中,当h>b(即最大目标上下文资源数量)时,减小定时器的定时时间,也即增大上下文资源的释放速度。
在一些实施例中,所述在所述定时器达到定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块之后,还包括:
在所述上下文资源释放模块的缓冲池中的上下文资源数量小于所述最小目标上下文资源数量的情况下,增大所述定时器的定时时间;
在所述定时器达到增大后的定时时间的情况下,从所述上下文资源释放模块的缓冲池中再次获取一个上下文资源释放给所述I/O命令处理模块。
- 电子设备的显示控制方法、装置、电子设备和存储介质
- 电子设备控制方法及装置、电子设备及存储介质
- 数据分布存储方法、装置、存储介质及电子设备
- 存储清理方法、装置、电子设备及存储介质
- 多版本数据存储管理方法及装置、电子设备、存储介质
- 资源释放方法、装置、电子设备及存储介质
- 资源释放方法、装置、电子设备及存储介质