一种控制固态硬盘读写操作的方法、装置及固态硬盘与流程

文档序号:37981267发布日期:2024-05-13 12:40阅读:9来源:国知局
一种控制固态硬盘读写操作的方法、装置及固态硬盘与流程

本发明涉及数据存储,尤其涉及一种控制固态硬盘读写操作的方法、装置及固态硬盘。


背景技术:

1、随着ssd的不断发展以及云业务的兴起,企业级ssd在云业务中得到广泛应用。高性能是企业级ssd的一大亮点,但是这一亮点需要可靠的稳定性作为前提。qos因此逐渐成为ssd所需要衡量的一个重要指标。在关于ssd的性能测试项中,多数均需要根据qos指标来确认测试结果。消费级ssd追求短时间内可以达到的最高性能,不一定能够体现出针对qos指标所进行的优化效果,通常也不关注此类指标。不同于消费级ssd主要应用于压力有限的个人业务场景,企业级ssd的应用场景通常需要7*24小时的持续工作,所以企业级ssd被要求能够提供稳定的高性能,特别是在大压力下的稳定性以保证业务的连续运行。

2、qos在使用ssd的环境中尤为重要,业界把瞬时出现大幅性能抖动现象称为毛刺,这将会导致产生超长时延(latency),因此需要引入qos来描述产品性能的稳定性。ssd的qos体现了以稳定一致的性能完成所有请求的能力。常见的qos量化指标主要包括以99%~99.999%的可信度给出最大的时延。例如,99.999%的qos指标结果为0.1ms,表示总请求的99.999%的时延在0.1ms以内。数据库服务器的时延需要达到特定水平才能有效发挥作用,对于服务供应商的环境尤其如此。当多种工作负载相互争抢,保障关键任务的时延对于用户体验至关重要。

3、为此,现有技术通过监测ssd当前的读写任务压力,并以此调整当前执行的写操作或擦除操作过程中允许插入读操作的数量,从而优化ssd的性能。但是现有技术使用了预设阈值与当前任务压力作比较,通常预设阈值不够灵活,导致策略的效果不准确;而且仅监测当前读写任务压力,所用于做判决的输入不够全面,有可能导致判决的偏差;此外,仅通过改变允许插入的读操作数量,所起到的时延调节作用较为有限。


技术实现思路

1、鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的控制固态硬盘读写操作的方法、装置及固态硬盘。

2、本发明的一个方面,提供了一种控制固态硬盘读写操作的方法,所述方法包括:

3、在固态硬盘执行操作任务过程中,当接收到优先级高于当前操作任务优先级等级的目标任务时,获取当前操作任务的执行状态信息,所述执行状态信息包括连续执行时长和当前操作任务执行过程中被暂停的次数s;

4、获取固态硬盘的任务调度状态,所述任务调度状态包括当前时刻等待执行的读操作的数量nr、写操作的数量np、擦除操作的数量ne以及历史调度数据中最近时间段内的预设数量个与当前操作任务优先级相同的低优先级任务在执行过程中被暂停次数的平均次数

5、根据固态硬盘的任务调度状态确定进行读写操作任务调度的调度条件;

6、若当前操作任务的执行状态信息满足所述调度条件,则挂起当前操作任务并开始执行所述目标任务。

7、可选地,所述方法还包括:

8、若当前操作任务的执行状态信息不满足所述调度条件,则将所述目标任务分配到等待队列,并继续执行当前操作任务。

9、可选地,在将所述目标任务分配到等待队列之后,所述方法还包括:

10、对当前操作任务的执行状态信息进行实时监测,当所述执行状态信息满足所述调度条件时,根据入队时间的先后顺序依次执行所述等待队列中的待执行任务。

11、可选地,所述根据入队时间的先后顺序依次执行所述等待队列中的待执行任务包括:

12、根据入队时间的先后顺序依次执行所述等待队列中的所有任务;或,根据入队时间的先后顺序从所述等待队列中选取至多预设数量个待执行任务,依次执行所述待执行任务;或,根据入队时间的先后顺序依次执行所述等待队列中的待执行任务,直到当前操作任务的挂起时间大于预设的时间挂起阈值或者所述等待队列中所有任务被执行完成。

13、可选地,获取当前操作任务的连续执行时长包括:

14、获取接收到所述目标任务时的第一时间值;

15、计算当前操作任务的启动时间值与所述第一时间值之间的时间差值,将所述时间差值作为当前操作任务的连续执行时长,其中,当前操作任务的启动时间值包括首次开始执行当前操作任务的时间值或上一次恢复执行当前操作任务的时间值。

16、可选地,所述方法还包括:

17、在所述目标任务执行完毕后,恢复执行挂起的当前操作任务,并更新当前操作任务被暂停的次数s=s+1,更新当前操作任务的启动时间值为当前时间。

18、可选地,所述根据固态硬盘的任务调度状态确定进行读写操作任务调度的调度条件包括:

19、获取host主机下发的读命令所产生的读操作的数量nrh,根据当前时刻等待执行的读操作的数量nr和host主机下发的读命令所产生的读操作的数量nrh计算存储控制器产生的读操作的数量nrc,nrc=nr-nrh;

20、根据存储控制器产生的读操作的数量nrc写操作的数量np、擦除操作的数量ne以及历史调度数据中最近时间段内的预设数量个与当前操作任务优先级相同的低优先级任务在执行过程中被暂停次数的平均次数计算高优先级操作任务的允许执行暂停次数s和低优先级操作任务的保持时间间隔值t,允许执行暂停次数s计算公式为:

21、

22、保持时间间隔值t计算公式为:

23、t=b·max(nrc,np,ne)

24、其中,a、b均表示预设系数,smax为固态硬盘中nand flash允许对当前操作任务执行暂停操作的最大次数。

25、可选地,在根据固态硬盘的任务调度状态确定进行读写操作任务调度的调度条件之后,所述方法还包括:

26、判断当前操作任务的执行状态信息是否满足所述调度条件,具体包括:判断当前操作任务的连续执行时长是否大于或等于所述保持时间间隔值t,且所述当前操作任务执行过程中被暂停的次数是否小于或等于所述允许执行暂停次数s;

27、若当前操作任务的连续执行时长大于或等于所述保持时间间隔值t,且所述当前操作任务执行过程中被暂停的次数小于或等于所述允许执行暂停次数s,则判定当前操作任务的执行状态信息满足所述调度条件。

28、第二方面,本发明还提供了一种控制固态硬盘读写操作的装置,所述装置包括:

29、第一获取模块,用于在固态硬盘执行操作任务过程中,当接收到优先级高于当前操作任务优先级等级的目标任务时,获取当前操作任务的执行状态信息,所述执行状态信息包括连续执行时长和当前操作任务执行过程中被暂停的次数s;

30、第二获取模块,用于获取固态硬盘的任务调度状态,所述任务调度状态包括当前时刻等待执行的读操作的数量nr、写操作的数量np、擦除操作的数量ne以及历史调度数据中最近时间段内的预设数量个与当前操作任务优先级相同的低优先级任务在执行过程中被暂停次数的平均次数

31、参数计算模块,用于根据固态硬盘的任务调度状态确定进行读写操作任务调度的调度条件;

32、控制模块,用于在当前操作任务的执行状态信息满足所述调度条件时,挂起当前操作任务并开始执行所述目标任务。

33、第三方面,本发明还提供了一种固态硬盘,包括存储控制器和nand flash,所述存储控制器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上控制固态硬盘读写操作的方法的步骤。

34、本发明实施例提供的控制固态硬盘读写操作的方法、装置及固态硬盘,不仅优了化高优先级任务的时延,同时保证低优先级任务的性能,在高优先级任务和低优先级任务之间取得平衡,避免了任务长时间无法完成的情况,从而使用户获得更优的体验。

35、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1