閱讀497 返回首頁    go iPhone_iPad_Mac_apple


在 Linux 中使用 SSD(固態驅動器):啟用 TRIM

當我在運行 Linux 的計算機上安裝我的第一塊固態驅動器(SSD)後,我開始探索如何用好它們。SSD 在操作方式上與傳統磁性驅動器不同,並且它們需要在軟件上另行處理以達到功能優化。

在傳統磁盤驅動器上,刪除時所刪除的文件不會從磁盤中完全刪除。這就是為什麼你可以恢複已刪除的文件的原因。基本上,文件係統僅引用磁盤上文件的位置,並且當文件被刪除時,該引用被擦除,以允許你在這些空間中寫入新數據覆蓋原來的數據。然而,對於 SSD,新數據隻能寫在驅動器上完全新的或已擦除的單元上。因為必須在寫入之前清除空間,如果在寫入文件時尚未有足夠的可用空間,則必須首先擦除該空間。這可能會對性能產生負麵影響。

如果操作係統在寫入新數據之前就擦除了未使用的空間,而不是在寫入時同時進行擦除,則可以提高文件保存性能。這種做法就是 TRIM。 TRIM 命令本質上允許你的操作係統告訴驅動器哪些區域的數據不再使用,以便擦除它們,加快驅動器將來的寫入,可以 SSD 的用戶提供更佳的體驗。

在 Linux 中,fstrim 提供此功能,它可以為寫入新數據而準備驅動器,並延長驅動器的使用壽命。由於在我使用的 Linux 發行版上 SSD 的 trim 不是自動的,所以必須去調度該操作,否則 SSD 的性能會隨著時間的推移而降低。

為了在驅動器上運行 fstrim,驅動器本身以及其上的文件係統必須支持 TRIM。在文件係統掛載過程中可以啟用 TRIM。例如,為了將設備 /dev/sda2 啟用 TRIM 掛載到 /mnt,你要運行:


  1. mount -t ext4 -o discard /dev/sda2 /mnt

一旦啟用,TRIM 過程本身就相當簡單。TRIM SSD 也可以在命令行或 cron 任務中手動完成。作為超級用戶(使用 su 或 sudo),運行 fstrim / -v 以完成手動 trim,或者設置 cron 任務以在計算機未使用時定期為你運行此命令。對於 fstrim 的完整選項列表請參考它的 man 手冊

硬件支持根據使用的驅動器接口類型如 PCI、ATASCSI 還是 SD/MMC 而有所不同。你需要谘詢你的 Linux 供應商以了解你的特定發行版是如何支持 TRIM 的。

例如,紅帽提供以下 SSD 磁盤指南。“性能隨著所使用的塊數接近磁盤容量而降低,性能影響程度因供應商而異,但是所有設備都會遇到一些性能降低。為了解決性能降低問題,主機係統(例如 Linux 內核)使用丟棄請求以通知存儲器給定範圍的塊不再使用。”

Debian wiki 提供了 SSD 使用的一些基本注意事項:使用 Linux 3.2 或更高版本內核,使用 SSD 的最新固件,使用 EXT4 文件係統,並且“在正常工作負載下有足夠的 DRAM 用來操作而不用使用交換空間“。

原文發布時間為:2017-02-05

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-26 09:32:56

  上一篇:go  VR如何巧妙填補傳統數據視覺化的漏洞
  下一篇:go  日誌和實時流計算處理