如何用神经网络模型处理SSD稳态控制问题

在企业级或数据中心的存储应用中,对固态闪存盘的特性有着比桌面应用更加严苛的多项要求。其中io延迟稳定性和qos(服务质量)是其中最重要的指标,其含义表征着ssd在各种场景轻重压力下能否提供稳定的io性能指标,将io的抖动和延迟控制在尽量小的范围内,而提升上层应用的响应。
近年神经网络在各行各业有很多有趣的实际应用,其在模式识别、智能机器人、自动控制、预测估计、医学和经济等领域已成功解决了许多现代计算机难以解决的实际问题,表现出很好的智能特性。忆芯科技的技术团队经过大胆创新实践,在固态企业级算法领域,将神经网络应用到ssd qos算法调优中,获得了相较于比传统算法的大幅提升。为企业级ssd io延迟稳定性和 qos设计开辟了全新的思路和方向。
稳态性能是指什么?
关于ssd的性能测试有很多项,文章下面跟大家分享下pts测试中的write saturation(wsat)写饱和测试的优化内容。pts是固态存储的性能测试规范,可参见《solid state storage performance test specification 》
在pts中,将ssd的性能状态分为了3个阶段:
a) 出厂阶段(fresh out of the box, fob)
出厂状态,一般称为空盘状态。ssd 的nand区域没有进行数据写入, 安全擦除命令可以将设备恢复出厂状态,该阶段的写性能可以达到峰值性能,ssd后台任务不会启动。
b) 转换阶段(transition)
随着非重复数据的不断写入,ssd的可写空间变小,当降低到一定阈值时就会触发ssd的垃圾回收(gc)任务释放空闲空间。该阶段性能下降较多,波动也较大,下降的幅度,取决于gc回收空闲空间的负载。
c) 稳定阶段(steady state)
当gc回收的负载和主机写入负载趋于平衡时,ssd 的性能会逐渐平稳下来,并长期维持在这个状态,称为稳态。稳态性能对于企业ssd应用有很大的实际意义。
稳态性能的指标评估
稳态的性能不仅仅是io处理的速度有多快,还要看处理io是否平稳。衡量平稳的方式,一般有两种:
a) 一致性=最小的iops/平均的iops
b) 一致性=超出平均iops的±5%的采样次数/总的采样次数
前者着重于表现单点向下跌落的程度,后者着重于表现上下振动的幅度。
传统的qos控制算法
传统的控制算法(如自适应控制算法)的优势在于处理该问题时,表现出在不同硬件(如nand,ddr)配置下都有较好的性能控制能力。
但是,其难点是在转换阶段时容易出现扰动,并传递到稳定阶段,影响io的一致性。而且不同硬件配置下扰动的程度可能不同,所以还需要开发人员分别精心地调校。
下面我们来看下如何用神经网络模型处理ssd的稳态控制问题,以及效果怎样。
构建和准备数据
主机先要对ssd的性能参数调节模块配置一组参数,然后在特定训练的io场景中对ssd发送io命令,同时主机实时地采集ssd内部的性能监测模块上报的各项工作数据。
抽样的数据有很多,且时间段也较长,要能实际表示出实际情形,需要在后面的整个流程中,不断反复且持续的进行工作并修正需要训练的数据集。
构建和训练模型
a) 建立神经网络模型
为了方便理解,可将模型简化为一个三输入二输出的模型。输入输出的参数如下:
输入参数host_w_iops:采样主机写通路的iops
输入参数host_r_iops:采样主机读通路的iops
输入参数vtc:ssd内部启动gc(垃圾回收)任务时,最小单位数据的有效数量
输出参数host_w_limit:主机写通路的流量限制参数
输出参数gc_limit:gc通路的流量限制参数
注:流量限制是指单位时间(如100ms)内可以处理单元数据(一般是4k)的数量。
通过软件定时器实现的单位时间精度一般是在ms毫秒级,忆芯科技的新一代主控芯片star2000在硬件上实现了流量管理功能,时间精度可以达到ns纳秒级,精度相对提高了100万倍。
b) 训练模型
i. 分析收集到的数据集,配置给模型一组期望的目标值。
ii. 用收集到的数据集训练神经网络,并评估训练结果,若目标偏差较大,需要反复迭代训练该过程。
iii. 训练完成后,将相关参数集部署到ssd中,并执行训练场景的io测试。
iv. 若实际结果与目标偏差较大,则反馈到前端进行调整。
v. 最后训练完成后,就可以进入评估阶段,验证下实际的效果。
评估模型
a) 转换阶段:
从下图中看到转换过程中没有超调的情况,在退出转换阶段时无明显的扰动。
b) 稳定阶段:
从下图中可看到,使用神经网络模型的方式,在振动的幅度上有一定的改善。单点向下抖动的程度也有一定改善,具体的一致性数值则从之前的91%提升至97%。
总结
较传统企业级qos优化手段,利用神经网络模型可轻松实现应对各种复杂场景,并能实现更加精确的自适应参数调优,取得更高的io稳定性。
然而,在嵌入式里执行神经网络计算会带来一定的计算开销,新一代主控芯片star2000则专门集成了硬件神经网络处理单元,结合8tops的算力,可以轻松应对新的业务挑战。
神经网络控制作为智能控制的一个新的分支,由神经网络与控制理论相结合而发展起来,可以为解决复杂的非线性,不确定的控制问题提供一种新的途径。


使用LabVIEW和NI WSN技术开发监测系统保护遗迹的特色和完整性
光伏逆变器的常见种类有哪些
HDYZ-E氧化锌避雷器带电测试仪面板及各部件功能介绍
了解什么是功率半导体芯片吗
MediaTek与高新兴物联携手助力金卡智能集团实现表计行业智能化发展
如何用神经网络模型处理SSD稳态控制问题
电容器在RC延时电路中的作用
电机型号含义 电机霍尔是什么元件?有何用
BLE技术更新(1)
智能电话机器人的外呼系统是什么,有什么作用
安科瑞AcrelCloud-9000新能源汽车充电桩收费云平台解决方案
无须单片机!模拟电路控制的循线机器人(图文)
SNS Telecom&IT发布一份新报告 2021年VoLTE服务收入将超2800亿美元
基于物联网的EcoStruxure电网(EcoStruxure Grid)架构
华为副董事长胡厚崑发表了《创新,点亮未来》的主题演讲
传下代iPhone开始量产 9月亮相
《2009手机行业报告》今发布 反映手机行业发展态势
分享两个OpenCV图像处理与分析的问题
Invensense推出IDG-650/ ISZ-650应用游戏摇杆陀螺仪
网管交换机的基本配置方法