首頁 > 筆記型電腦

deepin linux 2014.2 固態硬碟優化

2019-12-17 06:10:59

以前寫過一篇關於筆電4K對齊的,過這麼久有些新的發現。加上現在嘗試使用deepin linux了,所以,結合linux,再對固態硬碟優化總結下經驗。固態硬碟,是拿來使用的,而不是永久維護的,優先提升速度優勢,其次減少一些不必要的寫入(不要懼怕寫入)。

1

眾所周知,固態硬碟快閃記憶體顆粒的擦寫是又次數限制的。一般的MLC (Multi-Level Cell) 由3000次的擦寫次數。得益於損耗平均技術,固態硬碟的使用壽命大大延長。即使電腦過時了,硬碟的壽命還沒到盡頭~~所以,固態硬碟的優化主要就是提高隨機讀寫效率,減少不必要的寫入。

2

分割區對齊:

固態硬碟的最小讀取和寫入單位是page(4K),但是擦除是以Block(512K)為單位。在往標記刪除的page寫入資料時,要先擦除page所在Block,在把資料回寫進Block。如果一個邏輯塊分布再兩個物理塊「Block」中,那麼涉及的兩個物理塊都要擦除重寫。將分割區表和檔案系統向物理塊對齊,可以減少這種情況。所以,將分割區的起始邏輯位置設定為512KB或1MB的整數倍是合理的。

啟動終端:

sudo fdisk -l 

如圖:第一分割區的「起點」是2048(扇),如果以後每個分割區的「起點」都能被1024整除,那就是512K對齊。如果都能被2048整除,則是1M對齊。

注意:如果是機械硬碟的話,只要能被8除就可以了。機械硬碟只要4K對齊就好了。而固態要512K對齊。


3

修改fstab:

很多陳舊的資料上說,再fstab上,掛在引數加上discard,noatime。

discard,向下級塊裝置通知塊已釋放,相當於實時的Trim,Trim一次頁相當於一次,鑑於演算法個人不推薦。這個引數沒有提升SSD的效率,反而慢了。一般情況下是感覺不出來的。

noatime 使用該引數,系統不再把最近讀取檔案資訊寫入紀錄檔。某些依賴時間戳的程式將產生問題。比如郵件和備份系統。

以上都是個人不推薦的引數。

relatime 簡單說就是再修改檔案後更新atime , 存取檔案時如果atime超過一天則強制更新。

現在Deepin linux 2014,預設引數就很好了,必須修改。



4

調整I/O排程方案

現在主流linux有三種排程方案。CFQ、NOOP、Deadline。

NOOP(電梯式排程程式)對於快閃記憶體裝置,RAM,嵌入式系統是最好的選擇。

檢視當前的排程方案。

cat  /sys/block/sdb/queue/scheduler  #sdb 固態硬碟

noop  [deadline]  cfq            #現在的排程方案是deadline

設定固態硬碟的排程方案。

sudo  su    #提升許可權

echo noop  >  /sys/block/sdb/queue/scheduler   # 把noop寫入排程程式

cat /sys/block/sdb/queue/scheduler        #已經更改成功。

[noop] deadline cfq 

把他作為預設的設定,寫入自動啟動程式。

#gedit /etc/rc.local      把填再exit 之前,如圖所示。



5

定時Trim 

fstrim 是執行Trim 操作的命令,配合cron可以達到定時清理的作用。

執行週期,是自己的臨時檔案的頻度而定,像我這樣沒有大規模頻繁刪減檔案就沒必要每天一次。Trime會啟動固態硬碟的垃圾回收機制,會帶來回寫放大。

deepin linux 2014已經內建了Trim的優化,每週執行一次。它就再/etc/cron.weekly/fstrim.

如圖,它預設只是再intell和三星的固態硬碟上,一些又缺陷的固態硬碟可能再高負載時Trime,丟失資料。可以再 fstrim -all 新增"--no-model-check"來禁用檢查。


6

綜上,deepin linux對固態硬碟的優化相當的給力,僅僅需要調整一下排程方案。

IT145.com E-mail:sddin#qq.com