Linux

消費級 SSD 過度配置能否提高性能?

  • February 12, 2019

在閱讀提高 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

除了 sysbench 為測試而創建的文件外,該驅動器不包含任何內容。

在正常意義上,過度配置驅動器不會使驅動器“更快”。宣傳的峰值速度不會增加。然而,它會做的是讓 SSD 在高使用率的情況下表現更好。驅動器將在更長時間內接近峰值性能。您連結的白皮書中對此進行了解釋。

這將通過兩種方式發生:

耐力。由於較少的驅動器用於儲存,因此有更多的可用空間可以回收,從而比具有相同配置空間但備用區域更少的驅動器使用壽命更長。這是由於儲存單元在其生命週期中具有固定的寫入量。

寫放大。SSD 在塊和頁面中工作,而不是像傳統硬碟驅動器那樣的扇區。SSD 在後台完成內務處理任務,例如在寫入新數據之前對頁面進行洗牌和清除塊。在此期間,客戶端操作將暫停。更多的備用區域會減少這種情況的發生,從而提高性能。

要真正看到此設置的性能優勢,您需要向驅動器寫入更多數據。僅將 64GB 數據寫入具有 256GB 或 200GB 可定址空間的 SSD 不會顯示差異,因為它不會超過驅動器的分配區域。

引用自:https://serverfault.com/questions/953337