分配写任务的方法及装置与流程

文档序号:39182955发布日期:2024-08-27 18:50阅读:14来源:国知局
分配写任务的方法及装置与流程

本技术实施例涉及计算机领域,具体而言,涉及一种分配写任务的方法及装置。


背景技术:

1、固态硬盘ssd具有低功耗、体积小、可靠性高等优点,已广泛应用在各类大型数据存储系统中。存储需求的日益增长对固态硬盘的性能提出了更高的要求,其中,由单核系统演变为多核系统即是固态存储行业展现出的明显发展趋势。

2、各核同时承担读、写、垃圾回收等功能的ssd通常被认为具有较高的处理性能。由于主机发的起读写请求分配不均、部分核垃圾回收任务较重等原因,写任务的处理速度逐渐发生变化,且在核间也体现出一定的差异性。此时,若主机不考虑各核实际的写处理速度而随机分发读写命令,则极可能导致负载失衡现象,即写任务分配数量与各核处理速度不匹配。多核ssd系统的负载失衡问题轻则导致写入效率降低,重则导致写任务阻塞、严重影响多核ssd的处理性能。

3、由于多核固态硬盘中写任务分配数量与各核处理速度不匹配,导致负载失衡的问题,目前尚未存在有效的解决方案。


技术实现思路

1、本技术实施例提供了一种分配写任务的方法及装置,以至少解决相关技术中由于多核固态硬盘中写任务分配数量与各核处理速度不匹配,导致负载失衡的问题。

2、根据本技术的一个实施例,提供了一种分配写任务的方法,包括:获取固态硬盘中多个核的目标写任务,得到目标写任务集合,其中,所述多个核包括阻塞核、未阻塞核,所述目标写任务集合包括:所述阻塞核未处理的写任务和/或未阻塞核待分配的写任务;对所述目标写任务集合执行写任务优化分配处理,根据各个核的写效率,确定待分配至目标核的目标写任务的数量,其中,所述固态硬盘中多个核包括所述目标核,所述写效率是单位时间内每个核处理完成写任务的数量,所述写效率是基于历史时间段内各个核的权重、写任务的处理时长得到的;根据所述目标核的写能力与所述待分配至所述目标核的所述目标写任务的数量之间的关系,确定分配至所述目标核的目标数量;将目标数量的所述目标写任务分配至所述目标核,其中,所述写能力是基于历史时间段内所述目标核处理各种任务的数量和处理单笔任务的时长得到的。

3、在一个示例性实施例中,对所述目标写任务集合执行写任务优化分配处理,包括:对所述目标写任务集合执行n次写任务优化分配处理,直到所述目标中央处理器集合的固态硬盘的各个核中不存在所述目标写任务,其中,n是大于或等于1的整数。

4、在一个示例性实施例中,通过以下方式对所述目标写任务集合执行第i次写任务优化分配处理,i是大于或等于1的整数,包括:获取执行第i次写任务优化分配处理使用的第i个目标写任务子集,其中,目标写任务集合包括所述第i个目标写任务子集,在i等于1时,第i个目标写任务子集与所述目标写任务集合相等,在i大于1时,所述第i个目标写任务子集包括执行第i-1次写任务优化分配处理后所述阻塞核未处理的写任务和/或未阻塞核待分配的写任务;获取执行所述第i次写任务优化分配处理时的w个核的写效率,其中,所述w是大于或等于1的整数;根据所述w个核的写效率将所述第i个目标写任务子集分配至所述w个核中的目标核。

5、在一个示例性实施例中,根据所述w个核的写效率将所述第i个目标写任务子集分配至所述w个核中的目标核,包括:获取所述第i个目标写任务子集中目标写任务的总数量;根据所述各个核的写效率确定为所述w个核中各个核分配的目标写任务的数量,得到任务分配序列,其中,所述任务分配序列包括多个数值,每个数值是为与该数值对应的所述目标核分配的目标写任务的数量;按照所述任务分配序列向所述目标核分配所述目标写任务。

6、在一个示例性实施例中,所述根据所述各个核的写效率确定为所述w个核中各个核分配的目标写任务的数量,包括:通过以下方式得到所述w个核中第j个核分配的目标写任务的数量,其中,j是大于或等于1且小于或等于n的整数:将所述w个核中除所述阻塞核、分配写任务数量为零的核之外的其他核的写效率的和确定为目标之和;将所述目标写任务的总数量与所述目标之和的比值确定为目标比值;将所述目标比值与所述第j个核的写效率的乘积确定为所述第j个核分配的目标写任务的数量mj,其中,mj大于或等于0。

7、在一个示例性实施例中,将所述目标比值与所述第j个核的写效率的乘积确定为所述第j个核分配的目标写任务的数量mj之后,所述方法还包括:在mj是非整数的情况下,对mj进行取整操作,得到在mj是大于或等于1的整数的情况下,将所述第j个核确定为所述目标核,并将所述mj记录在所述任务分配序列中的第j个位置,其中,所述第j个位置上记录的是为所述第j个核分配的目标写任务的数量;在所述mj为零的情况下,在所述w个核中删除的所述第j个核,其中,所述w个核中未删除的核用于执行第i+1次写任务优化分配处理。

8、在一个示例性实施例中,在所述对mj进行取整操作之后,所述方法还包括:在所述是大于或等于1的整数的情况下,将所述第j个核确定为所述目标核,并将所述记录在所述任务分配序列中的第j个位置,其中,所述第j个位置上记录的是为所述第j个核分配的目标写任务的数量;在所述为零的情况下,在所述w个核中删除所述第j个核,其中,所述w个核中未删除的核用于执行第i+1次写任务优化分配处理。

9、在一个示例性实施例中,按照所述任务分配序列向所述目标核分配所述目标写任务,包括:在所述任务分配序列中获取为第k个核分配的目标写任务的数量mk,其中,所述mk是大于或等于1的整数;根据所述第k个核的感知数据确定所述第k个核的写能力,其中,所述写能力是所述第k个核在无阻塞情况下尚能接收的写任务的数量sk,其中,k是大于或等于1的整数;根据所述第k个核的写能力sk与所述mk的大小关系向所述目标核分配所述目标写任务。

10、在一个示例性实施例中,根据所述第k个核的写能力与所述mk的大小关系向所述目标核分配所述目标写任务,包括:在所述sk大于所述mk的情况下,向所述第k个核分配所述mk个所述目标写任务,且在存在第i+1次写任务的情况下,将所述第k个核确定为执行第i+1次写任务优化分配处理的核;在所述sk小于或等于所述mk的情况下,向所述第k个核分配sk个所述目标写任务,并在所述w个核中删除的所述第k个核,所述w个核中未删除的核用于执行第i+1次写任务优化分配处理。

11、在一个示例性实施例中,根据所述第k个核的感知数据确定所述第k个核的写能力,包括:获取所述第k个核在第一历史时间段内处理完成的写任务的数量nw、读任务的数量nr和擦任务的数量ne;根据所述第一历史时间段的前一时间段拟合得到的参数a0、a1、a2和a3,以及所述nw、nr、ne预估得到总时长t;通过所述总时长确定所述第k个核的写能力。

12、在一个示例性实施例中,根据所述第一历史时间段的前一时间段拟合得到的参数a0、a1、a2和a3,以及所述nw、nr、ne预估得到总时长t,包括:

13、通过以下公式得到所述总时长t:

14、t=a0+a1nw+a2nr+a3ne。

15、在一个示例性实施例中,通过所述总时长确定所述第k个核的写能力,包括:通过以下公式确定所述第k个核的写能力sk:

16、

17、其中,tob为预设的阻塞时间阈值,a1是所述第一历史时间段的前一时间段拟合得到的参数。

18、在一个示例性实施例中,在将所述目标比值与所述第j个核的写效率的乘积确定为所述第j个核分配的目标写任务的数量mj之前,所述方法还包括:获取所述第j个核在第二历史时间段的r个写任务的处理时长tr,其中,r是大于或等于1的整数;获取所述r个写任务的权重值,得到r个权重值,其中,处理完成的时刻与当前时刻越近的写任务的权重值越大;通过所述r个写任务的权重值、所述r个写任务的处理时长,得到所述第j个核的写效率。

19、在一个示例性实施例中,通过所述r个写任务的权重值、所述r个写任务的处理时长,得到所述第j个核的写效率,包括:通过以下公式得到所述第j个核的写效率vj:

20、

21、其中,qc是所述r个写任务中第c个写任务的权重值,tc是第c个写任务的处理时长。

22、在一个示例性实施例中,向所述第k个核分配所述mk个所述目标写任务,包括:随机向所述第k个核分配mk个所述目标写任务,或者,按照各个所述目标写任务的处理完成时间顺序向所述目标核分配所述mk个所述目标写任务;向所述第k个核分配sk个所述目标写任务,包括:随机向所述第k个核分配sk个所述目标写任务,或者,按照各个所述目标写任务的处理完成时间顺序向所述目标核分配所述sk个所述目标写任务。

23、在一个示例性实施例中,获取固态硬盘中多个核的目标写任务,得到目标写任务集合,包括:在目标中央处理器集合的固态硬盘中存在阻塞核的情况下,将所述阻塞核未处理的写任务确定为目标写任务,得到所述目标写任务集合,其中,所述固态硬盘的多个核中写任务的处理时间已超出预先设定的时间阈值为阻塞核;或者,在目标中央处理器集合的固态硬盘中不存在阻塞核,且存在待分配给所述固态硬盘的多个核的写任务的情况下,将待分配给所述固态硬盘的多个核的写任务确定为所述目标写任务,得到所述目标写任务集合;或者,在目标中央处理器集合的固态硬盘中存在所述阻塞核、且存在待分配给所述固态硬盘的多个核的写任务的情况下,将所述阻塞核未处理的写任务确定为目标写任务、待分配给所述固态硬盘的多个核的写任务确定为所述目标写任务,得到所述目标写任务集合。

24、根据本技术的又一个实施例,还提供了一种分配写任务的装置,包括:获取模块,用于获取固态硬盘中多个核的目标写任务,得到目标写任务集合,其中,所述固态硬盘包括多个核,所述多个核包括阻塞核、未阻塞核,所述目标写任务集合包括:所述阻塞核未处理的写任务和/或未阻塞核待分配的写任务;处理模块,用于对所述目标写任务集合执行写任务优化分配处理,根据各个核的写效率,确定待分配至目标核的目标写任务的数量,其中,所述固态硬盘中多个核包括所述目标核,所述写效率是单位时间内每个核处理完成写任务的数量,所述写效率是基于历史时间段内各个核的权重、写任务的处理时长得到的根据所述目标核的写能力与所述待分配至所述目标核的目标写任务的数量之间的关系,确定分配至所述目标核的目标数量;将目标数量的目标写任务分配至所述目标核,其中,所述写能力是基于历史时间段内所述目标核处理各种任务的数量得到的。

25、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

26、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

27、通过本技术,通过获取固态硬盘中多个核的目标写任务,得到目标写任务集合,其中,目标写任务集合包括:阻塞核未处理的写任务和/或未阻塞核待分配的写任务;对目标写任务集合执行写任务优化分配处理,根据各个核的写效率,确定待分配至目标核的目标写任务的数量,写效率是单位时间内每个核处理完成写任务的数量,所述写效率是基于历史时间段内各个核的权重、写任务的处理时长得到的;根据目标核的写能力与待分配至目标核的目标写任务的数量之间的关系,确定分配至目标核的目标数量;将目标数量的目标写任务分配至目标核,写能力是基于历史时间段内所述目标核处理各种任务的数量和处理单笔任务的时长得到的。由于本技术考虑了各核实际的写效率和写能力,可以达到为各个核分配的写任务更均衡的目的。因此,可以解决相关技术中由于多核固态硬盘中写任务分配数量与各核处理速度不匹配,导致负载失衡的问题,达到硬盘的多个核之间负载均衡,提高资源利用率的效果。

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