[发明专利]一种动态调整存储设备Cache读写命令数的方法和装置在审
| 申请号: | 201410313524.6 | 申请日: | 2014-07-02 |
| 公开(公告)号: | CN104090728A | 公开(公告)日: | 2014-10-08 |
| 发明(设计)人: | 石岩;陈继芬 | 申请(专利权)人: | 浙江宇视科技有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 310051 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 动态 调整 存储 设备 cache 读写 命令 方法 装置 | ||
技术领域
本发明涉及视频监控技术领域,尤其涉及一种动态调整高速缓存Cache读写命令数的方法和装置。
背景技术
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)已经广泛使用于数据读写的各个领域中。为了提高系统性能,RAID阵列通常会引入高速缓冲存储器Cache。众所周知,Cache是存储系统为阵列分配的内存空间。
一种存储系统结构如图1所示,其分为业务应用层、Cache层、RAID控制层和物理磁盘层。其中Cache层是由系统内存中分割出一部分作为RAID阵列的缓存,若是读缓存,通常应用预读功能提供系统读性能;若是写缓存,系统业务应用层将数据块写入Cache层后,Cache会根据一定的策略将数据块刷写至RAID阵列的磁盘中,如果刷写RAID成功,写入数据块的写缓存空间将被回收;如果写RAID不成功,业务数据会保留在写Cache中。因此,该类存储系统通常提供UPS(Uninterruptible Power Supply,不间断电源)以保证系统异常掉电时写缓存中的数据不丢失。
通过读Cache到达RAID层的读命令可能为业务应用层产生的读IO,可能为SCSI中间层产生的读IO,可能为逻辑卷LV产生的读IO,也可能为Cache层产生的预取读IO。这些读IO都会放到一个Cache的发送队列中,Cache发送线程按FIFO(先进先出)顺序下发读IO,并控制下发的读IO个数为当前RAID的配置值Rn。另,读写IO总个数不超过一个RAID支持的最大命令个数Up_n。
通过写Cache到达RAID的写命令可能为从Cache的下刷的写IO等。这些写IO会放到一个Cache发送队列中,Cache发送线程按FIFO顺序下发写IO,并控制下发的写IO个数不超过当前RAID的配置值Wn。另外,读写IO总个数不超过一个RAID支持的最大命令个数Up_n。
当前RAID阵列的写Cache和读Cache中的读、写命令下发个数都是固定配置的。随机写情况下,当前RAID配置的写IO下发个数增大会提高写性能,但又可能影响读IO下发的及时性,从而影响读性能。
所以需要根据业务情况进行RAID阵列的写Cache和读Cache中的读、写命令下发个数的变动。现有技术只能人为根据业务情况进行手动更改,这就很不方便,不能自动得适应随机读写、顺序读写、伪随机读写等各种应用模型。如果固定配置好的读写命令数不能很好的适应当前的应用模型,则将导致系统性能不能发挥到最好。
发明内容
有鉴于此,本发明提供一种动态调整高速缓存Cache读写命令数的方法和装置。该方法和装置应用于存储设备。
该动态调整高速缓存Cache读写命令数的方法方法包括:统计周期时间T内通过写Cache下发的随机写命令数R_num和总写命令数T_num;并且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w;根据所述R_num、T_num得出的随机写的压力,根据Raid_r、Raid_w得出的RAID层实际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID层的写命令数Wn和读命令数Rn。
优选地,所述动态调整Cache层下发到RAID层的写命令数Wn具体为:
根据下述公式计算Wn:
Wn=Up_n*(R_num/T_num)*(Raid_w/(Raid_r+Raid_w)),
根据计算结果进行Wn的调整;
所述动态调整Cache层下发到RAID层的Rn具体为:
根据下述公式计算Rn:Rn=Wn*Raid_r/(Raid_r+Raid_w),
根据该计算结果进行Rn的调整。
优选地,当Raid_w为0时,Wn不进行调整,保持当前值不变;当Raid_r为0时,Rn不进行调整,保持当前值不变。
基于同样的构思,该动态调整高速缓存Cache读写命令数的方法还可以按如下方式设计:该方法包括:统计周期时间T内通过读Cache下发的随机读命令数RR_num和总读命令数RT_num;并且统计周期时间T内RAID接收到的读命令数Raid_r和写命令数Raid_w;根据所述RR_num、RT_num得出的随机读的压力,根据Raid_r、Raid_w得出的Raid层实际的读写压力,以及通过Cache下发的命令总数上限值Up_n动态调整Cache层下发到RAID层的写命令数Wn和读命令数Rn。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江宇视科技有限公司,未经浙江宇视科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410313524.6/2.html,转载请声明来源钻瓜专利网。





