[发明专利]一种缓存任务队列调度方法、系统、终端及存储介质在审
申请号: | 202010880327.8 | 申请日: | 2020-08-27 |
公开(公告)号: | CN111949392A | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 刘志魁 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/54;G06F9/50 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 孙玉营 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓存 任务 队列 调度 方法 系统 终端 存储 介质 | ||
本发明提供一种缓存任务队列调度方法、系统、终端及存储介质,包括:设置前端任务队列组的优先级高于刷盘队列;设定缓存任务的执行顺序为先执行优先级高的队列中的任务;根据任务所属队列类型并按照所述执行顺序执行缓存内的任务。本发明能够彻底解决缓存刷盘对数据落缓存造成的抑制作用,并且可以始终使用最大速率刷盘,不必维护复杂的下刷速率调节机制。
技术领域
本发明涉及服务器技术领域,具体涉及一种缓存任务队列调度方法、系统、终端及存储介质。
背景技术
缓存内主要有2种任务:用户写请求落入缓存和缓存中存储的写数据落入后端盘。当前存储产品的缓存下刷策略为:水位(缓存使用占比)-漏桶算法。其核心步骤为:动态计算缓存各个分区的使用占比;将各个分区的使用占比作为输入条件给计算公式,根据使用占比决定各个分区的下刷速率上限;将各个分区的下刷速率上限输出给下刷模块(缓存数据落盘),下刷模块根据该速率进行任务调度。
该算法的出现有明显的前置条件,早期存储产品有2个主要瓶颈:磁盘性能低,特别是机械盘,远远低于前端的fc光纤速率Cpu计算能力有限,将计算能力给缓存数据落盘,则会降低处理用户请求的能力,降低业务性能。将计算能力给前端请求,则会降低缓存数据落盘的能力,导致缓存写满。缓存满后,业务性能等于缓存落盘能力,最终还是会影响业务性能。
而随着存储技术的发展,行业发生变化,Iops、读写请求时延要求大幅提升;Cpu能力与核数大幅增加;缓存充分发挥多核性能缓存数据块从256k/512k提升到2M/4M/8M;SSD盘要求大块写。
当前的水位(缓存使用占比)-漏桶算法对于存储技术的行业变化,没有针对性的优化策略。尤其是在写SSD盘的数据块颗粒度大幅提升时,会引入Buffer Bloat问题(简单说:cpu要一次处理完2M~8M的缓存刷盘任务,在此时间段内无法处理用户的请求,导致用户请求时延增大,性能降低),抑制系统处理用户请求的能力。
发明内容
针对现有技术的上述不足,本发明提供一种缓存任务队列调度方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种缓存任务队列调度方法,包括:
设置前端任务队列组的优先级高于刷盘队列;
设定缓存任务的执行顺序为先执行优先级高的队列中的任务;
根据任务所属队列类型并按照所述执行顺序执行缓存内的任务。
进一步的,所述方法还包括:
设置前端任务队列组的优先级高于后端任务队列组的优先级,所述后端任务队列组包括刷盘队列;
设定所述刷盘队列为所述后端任务队列组中优先级最高的队列。
进一步的,所述方法还包括:
所述前端任务队列组包括用户写请求队列、用户读请求队列、写数据传输队列、缓存读取队列、写数据镜像队列和读数据传输队列;所述后端任务队列组包括刷盘队列、清缓存队列、资源释放队列;
设定用户请求队列和用户读请求队列为一级队列,设定写数据传输队列和缓存读取队列为二级队列;设定写数据镜像队列和读数据传输队列为三级队列;
设定刷盘队列为四级队列,设定清缓存队列为五级队列,设定资源释放队列为六级队列;
设定队列优先级由一级队列到六级队列由高到低依次递减。
进一步的,所述方法还包括:
设定各优先等级的任务数上限和各任务队列的执行时间上限;
若当前任务队列的已执行时间超过执行时间上限,则判断当前等级的已执行任务数量是否已达到任务数上限:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010880327.8/2.html,转载请声明来源钻瓜专利网。