SSD作為讀取期間的寫入目標

SSD作為讀取期間的寫入目標

我有一個即時應用程序,它始終以大約 50 MB/s 的速度按順序將資料寫入 RAID 10 HDD 配置。它使用 mmap,寫入永遠不會因為等待 I/O 而被阻塞。

然後有時會發生大量讀取,例如我想從驅動器中盡快讀取 500GB 的順序資料。但是,它可能不會導致寫入應用程式被 I/O 阻塞。

目前,我們透過將寫入應用程式設定為 SCHED_FIFO 來解決此問題,然後在讀取應用程式上使用 CFQ I/O Scheduler + I/O Nice。這工作得很好,但效率有點低,因為驅動器需要進行大量的來回查找才能進行寫入和讀取。

我想知道是否有任何策略可以改善這一點?系統驅動器是快速 256GB SSD 驅動器。當有空間並且正在讀取時,我能否以某種方式讓 Linux 寫入 SSD?這可以透過 bcache、dmcache 或其他模組來實現嗎?即,它只會在讀取 HDD 時寫入 SSD,然後將其刷新到 HDD。如果 SSD 快取已“滿”,則對 HDD 的寫入應優先於讀取。

相關內容