SSD中的GC机制以及Trim

GC(Garbagecollection)垃圾回收 

所谓GC就是把一个闪存块里的"有效"页数据复制到一个"空白"块里,然后把这个块完全擦除。GC是 SSD里的一个非常关键的操作,其效率对性能有决定性影响。闪存块里"有效"页的数量对GC效率有决定性的影响,因数量越少,需要复制的页就越少, 花费的时间也越少,效率就高了。

 

 请看下图,把X块和Y块里的“有效”页复制到N块里,然后擦除X和Y以作备用的“空白块”。

  由前面的WL机制可知,WL的执行需要有“空白”块来写入更新后的数据。当可以直接写入数据的备用“空白块”数量低于一个阈值(厂商在主控 固件里设置,一般为全盘闪存容量写满后),那么SSD主控就会把包含“无效”数据的块里所有“有效”数据合并起来放到新的“空白”块里,并删除“无效”数 据块来增加备用的“空白块”数量。这个操作就是SSD的GC机制。        

  由于GC会对SSD产生大量负载,因此GC可分闲置GC及被动GC。闲置GC就是让SSD主控在系统闲置时‘提前’进行GC操作,产生一定 数量的‘空白’块,让GC操作不至于明显影响用户使用感受,但缺点是会因此造成额外的WA(写入放大,相关知识在后面会独立介绍),因为刚GC的‘有效’ 数据可能会因为用户更新而变‘无效’。被动GC则是所有SSD一定具备的,SSD主控性能对被动GC效率有决定性影响,因为此时SSD需要同时进行GC及 用户要求的数据操作,主控性能不足就会让用户发觉SSD的性能下降。        Trim指令的效果就是直接产生更多的‘无效’页数据,减轻GC的压力,从而减少用户发觉SSD性能下降的机会。(Trim相关知识后面会 独立介绍)各位要记住,GC是每个SSD必备的,没有GC的那只能是U盘,而不是SSD,而且任何时候性能相比SSD都只能用‘烂’来形容。

 

(待续)

WL介绍:

http://blog.chinaunix.net/uid-24203478-id-3409431.html

 

FTL:

http://blog.chinaunix.net/uid-24203478-id-3409428.html

转载于:https://www.cnblogs.com/gsblog/p/3481906.html

Linux的SSD TRIM是一种用于优化固态硬盘(SSD)性能和寿命的技术。TRIM是一项操作系统级别的指令,用于通知SSD哪些数据块不再被使用,可以被擦除和重写。这有助于提高SSD的写入性能,并减少因为重写未使用数据块而引起的性能下降。 要启用SSD TRIM功能,您需要进行以下步骤: 1. 确保您的SSD支持TRIM。大多数现代SSD都支持这个功能,但一些较旧或低端的SSD可能不支持。您可以查看SSD制造商的文档或技术规格来确认它是否支持TRIM。 2. 检查您的Linux发行版是否已启用TRIM。大多数现代Linux发行版默认情况下已启用TRIM。您可以运行以下命令来检查: ``` sudo systemctl status fstrim.timer ``` 如果输出显示"active"或"enabled",则表示TRIM已启用。 3. 确保您的文件系统支持TRIM。大多数常见的文件系统,如ext4和XFS,都支持TRIM。您可以通过检查`/etc/fstab`文件的文件系统挂载选项来确认是否启用了TRIM。 例如,对于ext4文件系统,您应该看到类似于以下内容的挂载选项: ``` UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 discard,noatime,errors=remount-ro 0 1 ``` 请注意,`discard`选项用于启用TRIM。 4. 手动运行TRIM命令。如果TRIM没有自动运行,您可以手动运行TRIM命令来清理未使用的数据块。使用以下命令: ``` sudo fstrim -av ``` 这将触发对所有已挂载文件系统的TRIM操作。 请谨慎使用TRIM命令,因为它触发SSD上的擦除操作,可能导致数据丢失。确保在运行TRIM之前备份重要数据。 希望这些信息对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值