Ubuntu 固態硬盤 4K對齊及啟用 Trim,及其驗證方法


因為之前一個移動硬盤因為壞道蔓延導致沒辦法繼續使用,我略沖動地跑去買了一塊 120GB 的三星840 固態硬盤回來。為了使用起來更方便,還去弄了個光驅位硬盤托架,把固態硬盤接在了光驅位與原本的筆記本硬盤一起工作。機械硬盤裝 Win7 兼作備份盤,固態硬盤則安裝了 Ubuntu。

在買固態硬盤前我是做了些功課的,了解到要使固態硬盤發揮出它應有的性能以及延長它的壽命,需要對它進行 4K 對齊並且開啟 Trim。

先說說這個 4K 對齊。有人說用 GParted 直接分區會自動進行 4K 對齊,而更普遍的說法則是分區時在 “Free Space Preceding” 處填上一個整數(比如1或2,如下圖)。我使用了后面那個方法,因為我是裝完系統才知道前面那個(更新:經測試前面那個方法是有效的)。

測試是否 4K 對齊很簡單,在終端運行 $sudo fdisk -l 然后查看各分區的起始扇區,如果是8的倍數則表明該分區已經“4K 對齊”了(如下圖,Start 一欄的數值全部為8的倍數)。

接下來就是啟用 Trim。有兩種方法可以讓 Trim 運作,第一種是使用 Online Discard (fstab),另一種是使用 cron 按計划執行 fstrim。在啟用 Trim 之前,首先要滿足下面幾個條件:

可以通過下面這個命令來查看所用的 SSD 是否支持 Trim:

在終端輸入 $sudo gedit /etc/fstab,然后在 SSD 每個分區的選項中都加上 “discard”,比如我的 fstab 修改后是這樣:

這個方法比較簡單,但是並不推薦這么做。Discard 選項啟用后,文件系統上的文件一旦被刪除,會立即通知 SSD 進行 Trim 操作,這就是online discard (立即刪除)。在進行刪除大量小文件的操作時可能會造成不小的性能下降,參見 Patrick 的博客文章

fstrim 是執行 Trim 操作的命令,配合 cron 可以讓操作系統按計划執行 Trim 操作,每天一次。

首先在 /etc/cron.daily 目錄下創建一個名為 trim 的文件:

往 trim 文件中粘貼如下內容:

真正執行 Trim 操作的是最后兩個命令,要根據實際情況進行修改。因為我的根目錄和 home 目錄在兩個獨立的分區,所以在這里使用了兩個命令分別執行 fstrim。

最后給 trim 文件加一個可執行權限就可以了:

Ubuntu 會在每天早上 6:25 執行 cron 每日任務,如果當時電腦沒有開機的話,任務仍然會在其它時間執行。日志文件保存在 /var/log/trim.log 中。

總的來說,4K 對齊與啟用 Trim 都很簡單。我安裝完系統測得平均讀取速度達到 280MB/S,逼近 SATA2 的理論上限。與原先的機械硬盤相比,不論是開機啟動速度還是應用程序響應速度都得到了極大的改善!

拓展閱讀:SSD 新手使用須知:4K 對齊調教實戰,提升 SSD 效能

David Yin. (19 Aug, 2012). Make sure 4K Alignment on SSD. David Yin”s Blog. Retrieved 26 Jul, 2013, from http://www.yinfor.com/blog/archives/2012/08/make_sure_4k_alignment_on_ssd.html

Nicolay Doytchev. (17 Oct, 2010). HOWTO: Configure Ext4 to Enable TRIM Support for SSDs on Ubuntu and Other Distributions. Forked by Nicolay. Retrieved 26 Jul, 2013, from https://sites.google.com/site/lightrush/random-1/howtoconfigureext4toenabletrimforssdsonubuntu

OpenNingia. (30 Dec, 2010). Installing Ubuntu on a SSD. Ask Ubuntu. Retrieved from http://askubuntu.com/questions/19376/installing-ubuntu-on-a-ssd

Uli. (30 Dec, 2010). How to enable TRIM?. Ask Ubuntu. Retrieved from http://askubuntu.com/questions/18903/how-to-enable-trim

ivan. (19 Oct, 2010). Linux平台使用SSD必讀 (範例為Ubuntu). 永遠的真田幸村. Retrieved from http://yblog.org/archive/index.php/11734

Nicolay Doytchev. (21 Sep, 2010). HOWTO: Check If TRIM On Ext4 Is Enabled And Working On Ubuntu And Other Distributions. Forked by Nicolay. Retrieved 26 Jul, 2013, from https://sites.google.com/site/lightrush/random-1/checkiftrimonext4isenabledandworking

Multiple. (n.d.). TRIM. Wikipedia, the free encyclopedia. Retrieved 26 Jul, 2013, from  http://en.wikipedia.org/wiki/TRIM

Multiple. (n.d.). Serial ATA. Wikipedia, the free encyclopedia. Retrieved 26 Jul, 2013, from http://en.wikipedia.org/wiki/Serial_ATA

Anonymous. (n.d.). Grub2. Community Ubuntu Documentation. Retrieved from https://help.ubuntu.com/community/Grub2

Andrew. (15 Jan, 2013). ENABLE TRIM ON SSD (SOLID-STATE DRIVES) IN UBUNTU FOR BETTER PERFORMANCE. Web Upd8: Ubuntu / Linux blog. Retrieved 22 Apr, 2014, from http://www.webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html

Patrick. (8 Jul, 2011). Impact of ext4′s discard option on my SSD. Patrick’s WebLog. Retrieved 22 Apr, 2014, from https://patrick-nagel.net/blog/archives/337

Multiple. (n.d.). cron. Wikipedia, the free encyclopedia. Retrieved 22 Apr, 2014, from http://en.wikipedia.org/wiki/Cron

Anonymous. (n.d.). fstrim(8). Linux manual page. Retrieved 22 Apr, 2014, from http://man7.org/linux/man-pages/man8/fstrim.8.html

Anonymous. (n.d.). CronHowto. Community Help Wiki. Retrieved 22 Apr, 2014, from https://help.ubuntu.com/community/CronHowto

Ji m. (8 Dec, 2013). How to Enable TRIM on SSD in Ubuntu Linux. UbuntuHandbook. Retrieved 22 Apr, 2014, from http://ubuntuhandbook.org/index.php/2013/12/enable-trim-ssd-better-performance/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM