存储策略的应用

文章目录
  1. Lun的读写策略
  2. 预取策略
  3. 高低水位
  4. Cache配置建议
  5. 发表评论

Lun的读写策略

读/写策略 原理 应用场景
常驻 读数据或者写数据以最低优先级淘汰,尽量保证常驻在内存中。 适合部分业务对性能要求很高并且数据量不大的情况。例如在数据库应用中的日志LUN。
默认 读数据或者写数据以默认优先级淘汰,按照正常算法进行释放。 常规场景下适用。
回收 读数据或者写数据以最高优先级淘汰,尽快将内存数据刷盘释放。 适合大块数据读写,并且一般多数情况只读写一次的场景。例如归档业务场景。

预取策略

预取策略 原理 应用场景
智能预取 对主机读请求进行连续性判断,如果是连续的请求,则将当前读请求后面的一段数据从硬盘读预取到Cache中,提高读Cache命中率。 适合单个数据流的读应用,或无法判断应用是否顺序的情况。例如文件读写。
固定预取 在读取数据时,不考虑主机I/O请求中读取长度,按照配置的预取长度将数据预取到Cache中。 适合大小固定的顺序读应用。例如多用户流媒体点播,用户使用相同码流。
可变预取 在读取数据时,按照主机I/O请求中的读取长度的倍数将数据预取到Cache中。 适合大小不固定的顺序读应用,或多用户并发读但无法判定预读量的应用。例如多用户多媒体点播。
不预取 按照主机I/O请求中指定的读取长度直接从硬盘读取数据,即不使用预取功能。 不预取策略适合随机读小数据块应用。例如数据库应用。

高低水位

Cache高低水位是指Cache中存储脏数据的最高限制值和最低限制值。如果Cache的高、低水位设置不合理,会影响Cache的读写性能。

  • 将脏数据缓存在Cache中可使IO得到充分整合与调度,降低延迟,提升性能,但当写Cache中缓存的IO脏数据的总量达到一定上限时,就需要加快数据刷盘的速度,避免由于写Cache缓存了过多脏数据不能接收前端下发的新的写IO请求。
  • 默认情况下,系统设置的低水位值为20,在运行实际的业务,特别是随机写业务的时候,可适当的提升低水位值,如设置为40或者50。
  • 高水位需根据实际业务的下发情况进行调整,重点关注调整后的性能变化状况和Cache命中率状况,针对随机写业务建议设置在80左右。
  • 刷盘线程每隔1s启动一次。

Cache配置建议

高低水位设置的建议:

  • 高水位不宜设置太高。如果高水位设置的值太高页面缓冲就小,如果前端I/O流量突然增加,会产生I/O波动和时延增大的现象,从而影响写性能。
  • 低水位不宜设置太低。如果低水位设置的值太低,会导致后端将缓存数据频繁写入硬盘,降低写性能。
  • 高低水位的间距不宜太小。如果取值间距太小,不能很好的利用后端带宽。
  • 系统推荐的Cache高水位和低水位的取值分别为80%和20%。

Disk -> CK -> CKG -> Extent -> Volume -> LUN

文章出自: 本站技术文章均为原创,版权归 "Desen往事 - 个人博客" 所有;部分图片来源于 Yandex ,转载本站文章请注明来源。
本文标题:存储策略的应用

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code

ˆ Top