用零填充重新格式化的驱动器会提高写入性能吗?

Bre*_*ete 14 performance hard-drive

我有一个 2 TB 驱动器,已填充到 > 99%。我已经删除了分区fidsk并使用mkfs.ext4.

所以据我所知,驱动器上的实际数据仍然存在。仍然重新分配了分区表。

问题是:如果清理磁盘,是否会提高进一步写入操作的写入性能?清洁我的意思是用零填充磁盘?

就像是

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496
Run Code Online (Sandbox Code Playgroud)

use*_*ser 36

不,它不会提高性能。

TL;DR:旋转磁性硬盘驱动器不是这样工作的。

首先,当您将任何给定数据写入旋转磁存储驱动器时,该数据会被转换磁域,实际上看起来与您正在写入的位模式非常不同。这样做的部分原因是当从盘片读回的模式具有一定的可变性时更容易保持同步,例如一长串“零”或“一”值会使保持同步变得非常困难. (你读过 26,393 位还是 26,394 位?你如何识别位之间的边界?)在计算机数据位和可存储块之间进行这种转换的技术随着时间的推移而发展;例如,查找Modified Frequency Modulation MMFM,组代码记录和更通用的游程限制编码技术

实际记录过程中,如HAMRPMR鹅卵石等是orthgonal按此在它们所描述的磁畴是如何存储在物理介质上的机制。

其次,当您将新数据写入扇区时,盘片相关部分的磁畴只是设置为所需值。无论先前的磁畴在那个特定的物理位置上是什么,这都会完成。盘片已经在写入头下旋转;首先读取当前值,然后当且仅当它不同时写入新值,将导致每次写入需要两次旋转(或每个盘片需要一个额外的磁头),导致写入延迟加倍或大大增加驱动器的复杂性,反过来增加成本。由于硬盘顺序 I/O 性能的限制因素是每个位在读/写磁头下通过的速度,这甚至不会给用户带来任何好处。(作为旁白,随机 I/O 性能的限制因素是读/写磁头可以多快地定位在所需的柱面,然后所需的扇区到达磁头下方。SSD 在随机 I/O 工作负载中如此之快的主要原因是它们完全消除了这两个因素。)

正如指出的JakeGould,其中一个原因,为什么你可能要 改写了一些固定的模式(如全零)的驱动器将是,以确保没有先前存储的数据的残余可以恢复,无论是有意还是无意。但由于上述原因,这样做不会对驱动器的性能产生任何影响。正如liori所指出的,另一个可以被认为是“提高性能”的原因是帮助压缩存储的磁盘映像的未使用部分,但即使这样也不会提高正在使用的系统的性能。

  • 将分区/驱动器归零的另一个原因是您是否计划进行原始分区/驱动器转储(例如作为备份、为多台机器制作操作系统映像、作为系统迁移技术等)。零压缩得很好,这可能与驱动器上存储的任何先前内容不同。 (3认同)