每天进步一点点——关于SSD写入放大问题

转载请说明出处:http://blog.csdn.net/cywosp/article/details/29812433


1. 关于SSD的写入放大
    之前在SSD(Solid State Drive)上设计并实现缓存系统用于存储数据块时遇到了一些问题,比方在磁盘写满后,假设老化掉一些最久未使用的数据块后。继续大量写入新的数据,随着时间的推移。写入速度变得比刚開始时慢了很多。为了弄清楚为什么会出现这种情况,于是在网上搜索了一些关于SSD的资料,原来这种情况是因为SSD硬件设计本身决定的,终于映射到应用程序上该中现象称为写入放大现象(WA: Write amplification)。WA是闪存及SSD相关的一个极为重要的属性。这个术语在2008年被Intel公司和SiliconSystems公司(于2009 年被西部数据收购)第一次提出并在公开稿件里使用。以下简单解说一下为什么会出现这样的情况以及是如何一个过程。
    SSD的设计全然不同于传统的机械磁盘。其是一个完整的电子设备,没有传统机械盘的读写磁头。因此,在读写数据的时候由于少了磁头在磁道之间的寻道过程所以SSD能提供较高的IOPS性能。也正由于其少了磁头的调度,所以SSD还能降低电量的使用,在数据中心中使用对企业来说是很故意的。

    SSD与传统磁盘相比其有了非常大的性能优势,以及较多的长处,可是事物总是有两面性的。其也自身也存在一些问题,写入在SSD中的数据是不能够直接更新的,仅仅能通过扇区覆盖重写。在覆盖重写之前须要先擦除,并且擦除操作又是不能在扇区上做的。仅仅能在磁盘的块上来完毕,擦除块之前须要将原有的还有效的数据先读出,然后在与新来的数据一起写入,这些反复的操作不单会添加写入的数据量 ,还会降低闪存的寿命,更吃光闪存的可用带宽而间接影响随机写入性能。

    举个最简单的样例:当要写入一个4KB的数据时,最坏的情况是一个块里已经没有干净空间了。但有无效的数据能够擦除,所以主控就把全部的数据读到缓存。擦除块,缓存里 更新整个块的数据,再把新数据写回去。这个操作带来的写入放大就是: 实际写4K的数据。造成了整个块(共512KB)的写入操作,那就是放大了128倍。同一时候还带来了原本仅仅须要简单一步写入4KB的操作变成:闪存读取(512KB)→缓存改(4KB)→闪存擦除(512KB)→闪存写入(512KB)。共四步操作。造成延迟大大添加。速度变慢。所以说WA是影响SSD随机写入性能和寿命的关键因素。以100%随机4KB来写入,眼下的大多数SSD主控,在最坏的情况下WA能够达到100以上。假设是100%持续的从低LBA写入到高LBA的话,WA能够做到1,实际使用中写入放大会介于这两者之间。SSD的详细操作过程例如以下:
                                        

2. 写入放大的解决的方法
    在实际操作中我们非常难全然解决掉SSD写入放大的问题,仅仅能通过某些方法来更有效的降低放大的倍数。一个非常easy的办法就是将一块大的SSD硬盘仅仅使用其的一部分容量,比方128GB你仅仅是用64GB,那么最坏的情况就是写入放大能降低约3倍。

当然这样的方法有点过于浪费资源了。另外还能够在写数据时採用顺序写入。当SSD被顺序写入时,其写入放大一般为1,但某些因素会影响到该值。

    除了上面的方法外,现阶段公认的比較好的方法是TRIM。

TRIM位于操作系统层。操作系统使用TRIM命令来通知SSD某个page的数据不须要了。则能够回收。

 

支持TRIM的操作系统和以往的主要差别是删除一个Page的操作不同。

在磁盘时期,删除一个page之后在文件系统的记录信息里将该page的标志位设置为可用,可是并没有将数据

删除。使用SSD且支持TRIM的操作系统,在删除一个page时。会同一时候通知SSD这个page的数据不须要了,SSD内部有一个空暇时刻的垃圾收集进程,在空暇时刻SSD会将一些空暇的数 据集中到一起,然后一起Erase。

这样每次写操作。就在已经Erase好了的Page上写入新的数据。


3. 总结
    尽管其存在写入放大的问题,可是这并没有让我们拒绝使用它。用其来做缓存加速已在非常多项目中得到使用,尤其是在数据库缓存项目中,在这些项目中SSD高效的读性能得到了充分的利用。

随着Facebook的开源项目Flash Cache的公布。以及Facebook内部的大量使用,Flash Cache已经成为了一个比較成熟的技术方案,这使得很多其它的公司选择了SSD来做存储或者缓存。



參考
[1] http://jfwang213.iteye.com/blog/1562263
[2] http://www.pceva.com.cn/topic/crucialssd/index-6_7.html
[3] http://bbs.pceva.com.cn/thread-3653-1-1.html




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
群联PS3111开卡工具是一款用于SSD(固态硬盘)的管理和维护软件,被称为SSD MP Tool(Solid State Drive Management Program)。SSD MP Tool的主要功能是帮助用户对PS3111控制器的SSD进行设置、修复和升级。 首先,这个工具可以帮助用户对SSD进行初始化和分区。当我们购买一块新的SSD时,需要先将其初始化,然后再将其分成一个或多个逻辑驱动器。这个工具可以简化这个过程,帮助用户轻松地完成。 其次,SSD MP Tool还具有修复功能。有时,我们可能会遇到SSD出现错误的情况,如无法被识别、读速度变慢等。这时,我们可以使用这个工具来检测和修复这些问题,以恢复SSD的正常运行。 此外,这个工具还可以进行固件升级。固件是SSD控制器上的软件,控制着SSD的各种操作。固件升级可以提高SSD的性能、稳定性和兼容性。SSD MP Tool可以帮助用户轻松地升级SSD的固件版本,以获取更好的体验。 最后,SSD MP Tool还提供了一些高级功能,例如TRIM(用于优化SSD写入操作)和安全擦除(用于彻底删除SSD上的数据)。这些功能可以帮助用户进一步优化SSD的性能和保护数据的安全。 总之,群联PS3111开卡工具——SSD MP Tool是一款功能强大的软件,可以帮助用户管理、维护和升级SSD。它简化了SSD的设置过程,修复了常见的问题,并提供一些高级功能来优化性能和保护数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值