一种低尾部延迟抖动SSD硬件调度方法、系统及设备与流程
本发明涉及固态存储服务质量调度,尤其涉及一种低尾部延迟抖动ssd硬件调度方法、系统及设备。
背景技术:
1、随着数据中心企业级应用对存储性能要求持续提升,基于pcie总线的nvme固态硬盘凭借高吞吐量、低平均延迟的特性,正逐步替代传统机械硬盘成为主流存储介质。与此同时,交易型数据库、实时分析、金融交易等业务场景不再仅满足于低平均延迟,对存储尾部延迟的可预测性提出了严苛要求——尾部延迟的大幅波动会直接影响业务链路的稳定性与服务质量。
2、当前nvme协议引入了控制器pcie带宽与iops服务质量特性,通常基于令牌桶机制实现带宽速率限制,以此实现多控制器共享同一ssd设备时的资源分配。但现有令牌桶调度机制仅从总量层面管控带宽配额,未区分不同数据长度命令的调度优先级,当短长度命令批量涌入提交队列时,会持续挤占调度资源,导致长长度命令长期无法被调度执行,出现长命令饥饿现象,进而引发毫秒级的尾部延迟峰值,严重破坏延迟确定性。
3、此外,现有加权轮询类调度方案多以软件层实现为主,适配nvme硬件控制器的硬件级调度机制仍存在空白,无法在遵循协议qos规范的同时,从硬件层面精准抑制尾部延迟抖动,难以满足高并发共享存储场景下的低延迟抖动需求。
技术实现思路
1、针对上述问题,本发明提出一种低尾部延迟抖动ssd硬件调度方法、系统及设备。
2、为了实现上述目的,本发明通过如下的技术方案来实现:
3、一种低尾部延迟抖动ssd硬件调度方法,包括:
4、s1、配置令牌桶的令牌补充周期与容量上限,令牌桶基于容量上限按令牌补充周期持续补充令牌;按命令的数据长度划分多个连续的数据长度区间,并确定最大长度区间;为每个数据长度区间预设基准权重值,并将所有数据长度区间的当前权重值初始化为对应的基准权重值;
5、s2、在当前调度周期内,从待执行命令队列中选取候选命令,根据候选命令的数据长度确定所属数据长度区间;当所述候选命令所属数据长度区间的当前权重值大于0,且令牌桶中当前剩余令牌数不低于执行该候选命令所需令牌数量时,执行该候选命令;执行完成后,从令牌桶中扣除执行该候选命令所需的令牌数量,并将该候选命令所属数据长度区间的当前权重值减1;
6、s3、若当前执行完成的候选命令所属数据长度区间为最大长度区间,则将所有数据长度区间的当前权重值重置为对应的基准权重值,并进入下一轮调度周期;否则,基于当前权重值继续当前调度周期内的命令调度。
7、作为本发明的一种优选方案,所述数据长度区间至少包括短长度区间、中长度区间和最大长度区间;若命令的数据长度小于预设第一字节阈值,则判定该命令所属短长度区间;若命令的数据长度大于等于预设第一字节阈值且小于预设第二字节阈值,则判定该命令所属中长度区间;若命令的数据长度大于等于预设第二字节阈值且小于预设第三字节阈值,则判定该命令所属最大长度区间;
8、其中,预设第一字节阈值小于预设第二字节阈值,预设第二字节阈值小于预设第三字节阈值;短长度区间的基准权重值大于中长度区间的基准权重值,中长度区间的基准权重值大于最大长度区间的基准权重值。
9、作为本发明的一种优选方案,当所述候选命令所属数据长度区间的当前权重值不大于0,或令牌桶中当前剩余令牌数低于执行该候选命令所需令牌数时,跳过对该候选命令的执行,并从待执行命令队列中选取下一条候选命令重新进行判定。
10、作为本发明的一种优选方案,若所有数据长度区间的当前权重值均为0,且在预设调度时长内未调度执行任何命令,则直接将所有数据长度区间的当前权重值重置为对应的基准权重值,结束当前调度周期并进入下一轮调度周期。
11、作为本发明的一种优选方案,从待执行命令队列中选取候选命令时,按候选命令进入待执行命令队列的顺序依次轮询选取;同一待执行命令队列遍历过程中,已判定跳过的候选命令不再重复进行判定。
12、作为本发明的一种优选方案,主机可通过nvme管理员命令动态修改各数据长度区间的基准权重值、令牌补充周期、容量上限以及预设第一、第二、第三字节阈值;当修改完成后,在下一个调度周期生效。
13、作为本发明的一种优选方案,当命令进入待执行命令队列时,记录累计等待时长;
14、在轮询选取候选命令时,若当前候选命令所属最大长度区间且累计等待时长超过预设超时阈值,则将当前候选命令标记为超时候选命令;针对超时候选命令,将最大长度区间的当前权重值按预设步长增加权重值;增加后的最大长度区间的当前权重值不超过对应基准权重值的2倍;
15、当全部超时候选命令均调度执行完成后,将所有数据长度区间的当前权重值重置为对应的基准权重值,并进入下一轮调度周期;
16、若执行超时候选命令所需令牌大于当前令牌桶中剩余令牌,且累计等待时长超过预设第二超时阈值,则将最大长度区间的当前权重值重置为对应的基准权重值。
17、一种低尾部延迟抖动ssd硬件调度系统,包括:
18、初始化模块,用于配置令牌桶的令牌补充周期与容量上限,令牌桶基于容量上限按令牌补充周期持续补充令牌;按命令的数据长度划分多个连续的数据长度区间,并确定最大长度区间;为每个数据长度区间预设基准权重值,并将所有数据长度区间的当前权重值初始化为对应的基准权重值;
19、命令判定模块,用于在当前调度周期内,从待执行命令队列中选取候选命令,根据候选命令的数据长度确定所属数据长度区间;当所述候选命令所属数据长度区间的当前权重值大于0,且令牌桶中当前剩余令牌数不低于执行该候选命令所需令牌数量时,执行该候选命令;执行完成后,从令牌桶中扣除执行该候选命令所需的令牌数量,并将该候选命令所属数据长度区间的当前权重值减1;
20、重置判定模块,用于若当前执行完成的候选命令所属数据长度区间为最大长度区间,则将所有数据长度区间的当前权重值重置为对应的基准权重值,并进入下一轮调度周期;否则,基于当前权重值继续当前调度周期内的命令调度。
21、一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述一种低尾部延迟抖动ssd硬件调度方法的步骤。
22、一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述一种低尾部延迟抖动ssd硬件调度方法的步骤。
23、本发明的有益效果是:首先,本发明融合令牌桶带宽管控机制与按命令数据长度划分区间的加权轮询调度逻辑,以区间当前权重值、令牌桶剩余令牌数作为双重执行判定条件,针对不同数据长度的nvme读写命令分配差异化调度配额,可避免短数据长度命令持续挤占调度资源造成的长命令饥饿问题,有效抑制共享nvmessd场景下的尾部延迟峰值,提升存储存取延迟的确定性,适配金融交易、实时数据库、ai推理等延迟敏感业务。
24、其次,本发明定义区间数据长度上限数值最大的数据长度区间为最大长度区间,以最大长度区间命令执行完成作为全局权重重置触发条件,构建闭环调度周期;每完成一条命令同步扣减对应区间当前权重,均衡单周期内各长度区间命令的调度机会,从硬件调度逻辑层面稳定控制延迟抖动幅度。
25、接着,本发明依托令牌桶按固定令牌补充周期持续补充令牌、按命令消耗扣减令牌的机制,严格遵循nvme协议控制器pcie带宽与iops服务质量规范,在合规完成带宽资源限流分配的基础上,弥补传统令牌桶调度无法区分命令io尺寸的缺陷,兼顾整机pcie总线带宽利用率与io调度公平性。
26、最后,整套调度逻辑可全部以nvme控制器内部数字硬件电路实现,无需依赖处理器软件调度,硬件判定、权重计数、令牌计数实时并行完成,调度决策时延低;同时各参数可标准化配置,能够适配不同并发量级、不同io尺寸混合的企业级存储业务,方案鲁棒性与工程适配性更强。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com