消费级 SSD 超额配置能否提高性能?

kra*_*lis 3 linux performance ssd

在阅读提高 SSD 耐用性的方法时,我遇到了一份关于 SSD 过度配置(限制驱动器上的主机可寻址空间或不包括分区中的一些可寻址空间以将其留给控制器)​​主题的英特尔白皮书来管理传入数据,减少写入放大并提高驱动器的耐用性)。奇怪的是,论文还提到过度配置可以提高随机写入性能。为了测试这一点,我在我的 256GB Intel 545s SSD 上的几个不同配置上运行了 sysbench 随机写入测试。

  1. 256/256GB 可寻址(27.5 MiB/s 随机 4k 写入)
  2. 200/256GB 可寻址(26.5 MiB/s 随机 4k 写入)
  3. 256/256GB 可寻址,包含 200GB 分区(26.5 MiB/s 随机 4k 写入)
  4. 256/256GB 可寻址,包含 150GB 分区(26.8 MiB/s 随机 4k 写入)

令我失望的是,配置 2-4 的性能都比非用户过度配置的配置差一点。为什么我没有看到性能提升?我测试错了,还是可以通过客户端 SSD 固件的行为与英特尔论文中显示的数据中心驱动器的行为不同来解释差异?

测试是在运行 ext4 文件系统的 Linux 系统上完成的

sysbench --test=fileio --file-total-size=64G --file-test-mode=rndwr --init-rng=on --max-time=300 --max-requests=0 run
Run Code Online (Sandbox Code Playgroud)

该驱动器除了 sysbench 为测试创建的文件外,不包含任何内容。

Ber*_*ert 7

在正常意义上,过度配置驱动器不会使驱动器变得“更快”。宣传的峰值速度不会增加。然而,它会做的是让 SSD 在高使用率的情况下表现更好。驱动器将在更长时间内更接近峰值性能。您链接的白皮书中对此进行了解释。

这将通过两种方式发生:

耐力。由于较少的驱动器用于存储,因此有更多的可用空间可供回收,从而比具有相同配置空间但备用区域较少的驱动器具有更长的使用寿命。这是因为存储单元在其生命周期中具有固定的写入量。

写放大。SSD 在块和页中工作,而不是像传统硬盘那样在扇区中工作。SSD 在后台完成内部管理任务,例如在写入新数据之前进行页面混洗和清除块。在此期间,客户端操作将暂停。更多的备用区域会减少这种情况的发生,从而提高性能。

要真正看到此设置的性能优势,您需要向驱动器写入更多数据。仅将 64GB 数据写入具有 256GB 或 200GB 可寻址空间的 SSD 不会显示差异,因为它不会超出驱动器的分配区域。