SSD Wear Leveling磨损均衡,并不是一直有效,甚至有负面作用!--part2

2023-12-13 10:36

本文主要是介绍SSD Wear Leveling磨损均衡,并不是一直有效,甚至有负面作用!--part2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

为了测试不同WL算法的性能影响,论文中在随机写压力下设定了两个参数:r,写IO比例;h,热数据比例。后续的测试基本采用的r/h=0.9/0.1的IO负载。

图片

在这种工作负载压力下,PWL算法的在80遍写盘后的写放大增加了11.49,这个写放大已经非常严重了。

图片

上图,根据CDF(Cumulative Distribution Function,即累积分布函数)曲线来看,在不同的工作负载(r/h=0.9/0.1 vs r/h=0.5/0.5)情况下,WL不同的算法效果相差很大,同时也有可能带来负面的效果,加速了寿命消耗!

图片

上图,减少了数据占用空间,再结合前两张图的对比,发现上面四种情况:只有数据访问相对均衡且占用空间较小时,WL磨损均衡算法才是有效的。其他场景磨损均衡效果不大,甚至可能产生负面影响

图片

最后,论文中提出了一种可变容量SSD的概念(类似ZNS SSD也可以通过zone来调整容量),可变容量是如何延长SSD的寿命的呢?

  • 首先,由于容量变化可以有效地提高存储效率,这就意味着在相同的物理存储空间内可以存储更多的数据。这样就可以减少SSD的写入次数和擦除次数,从而延长其寿命。

  • 其次,容量变化还可以平衡SSD内部各个区块的磨损程度。由于不同区块的存储空间是动态调整的,那些经常被写入的区块可以得到更多的存储空间,从而延长其寿命。

为了验证效果,论文设计了8个SSD模拟器,分别在9种workload负载种进行实际测量:

(1)8个SSD模拟器

图片

(2)9种workload负载

图片

实验数据表明:

  • 可变容量SSD相比容量固定的SSD,寿命平均提升86%,最大提升了2.94倍。 

  • 可变容量SSD的场景下,WL反而起了负面作用,没有WL磨损均衡算法效果更好,写放大更低。

图片

论文解读后评

  • 该论文作者,看到了目前WL磨损均衡的一些弊端,并提出一些思路,可变容量这个想法,实施过程还需要上层文件系统的配合(比如,逻辑空间的重新映射),这个实施难度个人觉得还是挺大的。

  • 论文至少提醒大家一个观点WL磨损均衡,并不是所有场景都是有效的,还有可能出现负面影响。SSD从业者在设计WL磨损均衡算法时,也需要进行通盘考虑,给出最优方案。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 大容量疯了!居然想把磁带放到硬盘,100TB+是否可以实现?

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • 小米14魔改存储芯片多出8GB空间背后的秘诀

  • SSD IO性能优化是一项复杂但很有趣的工程

  • 双11即将来临,挑选SSD硬盘最全避坑指南

  • 性能领域:你知道的越多,不知道的也就越多

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 如何通过优化Read-Retry机制降低SSD读延迟?

  • 关于硬盘质量大数据分析的思考

  • 存储系统性能优化中IOMMU的作用是什么?

  • 全景解析SSD IO QoS性能优化

  • NVMe IO数据传输如何选择PRP or SGL?

  • 浅析nvme原子写的应用场景

  • 多维度深入剖析QLC SSD硬件延迟的来源

  • 浅析PCIe链路LTSSM状态机

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

这篇关于SSD Wear Leveling磨损均衡,并不是一直有效,甚至有负面作用!--part2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/488134

相关文章

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

一文教你PyCharm如何有效地添加源与库

《一文教你PyCharm如何有效地添加源与库》在使用PyCharm进行Python开发的时候,很多时候我们需要添加库或者设置源,下面我们就来和大家详细介绍一下如何在PyCharm中添加源和库吧... 在使用PyCharm进行python开发的时候,很多时候我们需要添加库或者设置源。这些操作可以帮助我们更方便

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Spring 中 BeanFactoryPostProcessor 的作用和示例源码分析

《Spring中BeanFactoryPostProcessor的作用和示例源码分析》Spring的BeanFactoryPostProcessor是容器初始化的扩展接口,允许在Bean实例化前... 目录一、概览1. 核心定位2. 核心功能详解3. 关键特性二、Spring 内置的 BeanFactory

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM