haierccc 发表于 2019-10-24 09:12

碎片整理在WIN7下的确有效

本帖最后由 haierccc 于 2019-10-24 09:14 编辑

网上关于SSD是否需要碎片整理有争论。
关于数据的地址,分为“LBA”和“PBA”,LBA是操作系统认的逻辑地址,PBA是磁盘认的物理地址,磁盘需要把LBA转换成PBA。
现在PBA没有了碎片,但LBA上还有碎片,结果造成I/O次数过多。
我对WIN7整理碎片,发现的确是开机和关机的速度变快了。
WIN10的碎片整理,如果发现是SSD,就不再搬运数据,而仅仅是发出Trim指令。
如果我想要在WIN10下强行整理数据,该用啥软件呢?还是把WIN7的工具直接拷贝过来?

nighttob 发表于 2019-10-24 09:21

CMD admin
defrag c: /u /v

haierccc 发表于 2019-10-24 09:24

nighttob 发表于 2019-10-24 09:21
CMD admin
defrag c: /u /v

好的,回去我看看

redseabay 发表于 2019-10-24 11:02

lba 碎片少, 一次dma 指令可以读取更多的范围, 可以少发 sata 指令, 应该会减小延迟,大概也能节省一点ssd 内嵌 cpu 时间.

haierccc 发表于 2019-10-24 12:38

redseabay 发表于 2019-10-24 11:02
lba 碎片少, 一次dma 指令可以读取更多的范围, 可以少发 sata 指令, 应该会减小延迟,大概也能节省一点ssd ...

{:1_456:}{:1_456:}{:1_456:}{:1_456:}{:1_456:}

Mufasa 发表于 2019-10-24 23:20

还有强制SSD执行垃圾回收的功效

整理完成以后,SSD上的数据排列也会好一些

zsbstephen 发表于 2019-10-24 23:54

StormBolt 发表于 2019-10-25 00:14

zsbstephen 发表于 2019-10-24 23:54
SSD碎片整理了速度变快也神TM真是迷。根据浴室介绍过的SSD原理理论,SSD只有FTL、Page和Block,哪里来的PBA ...

平衡磨损是分开,不是乱序

有序肯定是比乱序更容易找的,只是这个整理之后能否变得有序本身就比较随机,有可能变快而已

整理就是把数据取出来,试图有序地重新放回去,如果放回去之后在不同的Flash里面,速度是多通道的,如果数据在同一片Flash甚至同一个CE里面,那就是单通道速度。具体放回去会什么样,取决于均衡磨损策略,放回去之后还会被SLC缓存后搬运以及GC回收等动作影响,所以结果很随机,但理论上并不是完全没用的。

ninjasex 发表于 2019-10-25 11:22

SSD 是电子寻址,人能感觉到比原来快?

nighttob 发表于 2019-10-25 11:34

乱序不是无序
文件系统不是乱序的

haierccc 发表于 2019-10-25 12:27

本帖最后由 haierccc 于 2019-10-25 12:29 编辑

zsbstephen 发表于 2019-10-24 23:54
SSD碎片整理了速度变快也神TM真是迷。根据浴室介绍过的SSD原理理论,SSD只有FTL、Page和Block,哪里来的PBA ...
我说说我的理解和推测。在百度上查找关于LBA与PBA的资料,得到是如下信息:
LBA:是非常单纯的一种定址模式﹔从0开始编号来定位区块,第一区块LBA=0,第二区块LBA=1,依此类推。
PBA:磁盘的物理地址,是柱面/磁头/扇区的寻址方式,也就是CHS。
可见,LBA就是单纯的一维数组,PBA是N维数组,N=柱面的数量。
操作系统读写LBA,然后在HDD层面转换成PBA,也就是CHS。

因为磁盘的“块”可直接覆盖和删除,所以LBA=PBA,是一对一的对应关系。
关键就是在这里:
1、操作系统要清理PBA的碎片
2、LBA=PBA
3、所以操作系统只需要清理LBA的碎片,在LBA上对齐数据就可以了,连带的结果就是PBA也对齐了。
如果以上我的推测是正确的,那么所谓“碎片”,虽然从底层看是HDD的PBA碎片,但从操作系统的层面看,就是LBA的碎片。
操作系统清理的就是LBA的碎片,只不过因为PBA与PBA对应,最终的结果就是清理了PBA的碎片。

还是我的推测:比如有个文件abc.txt,其LBA地址是109,314,901,这就是不连续的“碎片”
清理碎片以后,就在一维数组上连续了,变为237,238,239。
因为LBA与PBA的一一对应关系,所以在CHS上也连续了,变为了100号柱面,1号磁头,704,705,706这3个连续的扇区。

现在,磁盘换成了SSD,PBA消失了么?其实没有。

对于HDD,有个映射层处理LBA与PBA的转换(不知道叫啥名),把LBA转换成CHS。
对于SSD,也有个映射层,把LBA转换成闪存芯片的地址,这个映射层就叫做FTL。
对于LBA的碎片,因为地址不连续,就需要多次的I/O,比如上例,最少也需要3次I/O。
而对于连续的地址,最优情况下只需要一次I/O,比如从237开始,一次读入3个块。





zsbstephen 发表于 2019-10-27 12:51

zsbstephen 发表于 2019-10-27 12:53

StormBolt 发表于 2019-10-27 13:13

zsbstephen 发表于 2019-10-27 12:51
N版主点中了,我上面说的乱序,并不是无序。数据块写入NAND各块区域分布情况和FTL对LBA模拟映射情况,这 ...

你的乱序并不是无序,我说的有序也并不是连续

如果一个足够大的目标文件恰好在多个FLASH上,多通道读取就肯定比单通道快。微软无法做到是因为硬件算法不统一,整理随机性有效也并不是因为逻辑连续,而是因为前述的有利于读取的物理分布,而整理时被故意同时写入的文件又恰好可能满足这一点

可能定制的软硬件可以实现绝对有效,直至win7,defrag都有个-b参数,只对启动系统所须文件做连续排列,如果这年头刻意要把启动文件放在最快速读取的地方,应该也不是做不到。但是纯UEFI所减少的启动时间带来的收益更大,这大概就是第二个微软不做的原因

zsbstephen 发表于 2019-10-27 13:41

StormBolt 发表于 2019-10-27 14:48

zsbstephen 发表于 2019-10-27 13:41
不是什么“硬件不统一”……NAND的page、blobk这些真正的底层对操作系统是个不透明的黑盒……除非闪存专 ...

一个意思。。没什么好争的

haierccc 发表于 2019-10-28 08:46

本帖最后由 haierccc 于 2019-10-28 08:49 编辑

zsbstephen 发表于 2019-10-27 12:53
详见我12L回复,这里不累叙了。

存在即合理,基于现实以及实际原理的推测才叫猜想,缺了其一只能叫幻想 ...
你是说,我的推测都是幻想啊。
我对磁盘碎片=LBA碎片,以及I/O次数的推测是错的么
那请教对的。

zsbstephen 发表于 2019-10-28 21:06

固特异轮胎 发表于 2019-10-28 22:12

看来需要再重新复习一下基础知识了

haierccc 发表于 2019-10-29 14:41

本帖最后由 haierccc 于 2019-10-29 15:29 编辑

zsbstephen 发表于 2019-10-28 21:06
对HDD大概没差多少,但你还没明白最关键一点:SSD跟HDD压根就不是同一样的东西。自己去翻浴室的教程贴吧 ...
不怕错,就是怕不知道错在哪
SSD不是机械寻址的存储器,这个我知道,如上面的帖子所言“分散在NAND随机位置读写延迟和速率对主控而言跟分布在连续区域没有任何区别”。,我猜测的就是LBA的碎片过多,造成I/O次数过多,速度不是慢在SSD,而是慢在操作系统.
网上有人说,自己的好几个G的内存交换文件被极限分片了,也就是分到的最多的片,好像是65536片,在频繁操作交换文件的情况下,这么多的I/O不知是否会影响操作系统的速度
页: [1]
查看完整版本: 碎片整理在WIN7下的确有效