无意间发现,在硬件不变的情况下,刚格式化完的磁盘写入速度能达到 160 MB/s,但用的时间一久(长期的读写操作)速度就会慢很多,不知道原因在哪里?
与 硬盘、操作系统、读写进/线程 或者是其他的什么因素有关吗?
因为刚格式化完的磁盘几乎没有碎片,可用空间是连续的,磁盘寻址会很快
碎片是这样产生的:
新磁盘(_表示空闲数据块)
__________________________________________
写入10个文件(#表示数据)
######################____________________
删除其中3个(有一个与其他两个不连续)
######___###_#########____________________
再写一个大文件(######)
######___###_#########____________________
|- 寻址到此,空间够么? 不够...
######___###_#########____________________
|- 寻址到此,空间够么? 不够...
######___###_#########____________________
|- 寻址到此,空间够么? 够了 ~ 那就写吧
######___###_###############______________
仅作比喻,实际磁盘寻址并不是从头到尾遍历的,写入文件也不一定必须是连续的空间,但是磁盘会根据一定算法找到一个最合适的地方来放要写入的数据,磁盘碎片多就会造成算法执行时间长,降低整个操作的效率
操作系统-文件系统层面,原理正如上面所说。你所说的“再次格式化后不能达到原有的速度”,可能和机械层面有关系。如果不是固态盘(SSD),而是普通的机械硬盘(如希捷5400r/min机械硬盘),随着时间推移,使用的损耗和各种因素的累积作用,硬盘的机械效能将会下降,最高读写速度也因此会有所下降。举个例子,装有机械硬盘的机器,用的时间长了,会听到明显的硬盘“咔咔咔”的声音。
格式化能够改善碎片问题。你说的“再次格式化仍然达不到最初的高速”,有可能是因为硬盘用的时间长了出现坏块(坏块物理上的损坏,碎片属于逻辑上的)而影响速度。