Linux環(huán)境下的SSD優(yōu)化

前提

  1. 升級(jí)到最新的Linux發(fā)行版本(主要是Kernel)
  2. 升級(jí)到最新的SSD Firmware
    使用sudo smartctl -a /dev/sda命令查看Firmware版本老厌。
  3. 使用Ext4文件系統(tǒng)
    btrfs 雖然支持專門的SSD mountc參數(shù),但是本身文件系統(tǒng)的穩(wěn)定性還不高。
  4. 開(kāi)啟BIOS AHCI
  5. 有條件的加滿RAM务嫡,因?yàn)樗萐SD便宜寞焙。
    配置RAMDISK可以有效的將SWAP操作減少航夺。參見(jiàn)Reduction of SSD write frequency via RAMDISK
  6. 不要使用TLC芯片的SSD
  7. 不要做碎片整理操作Defragmentation
  8. 不建議開(kāi)啟hibernation休眠功能莺匠,因?yàn)闀?huì)有大量的數(shù)據(jù)讀寫闻丑。但是從筆記本使用角度來(lái)說(shuō)挠锥,還是開(kāi)著吧众羡,關(guān)了也要操作很多配置。

開(kāi)啟磁盤的TRIM功能:

Linux對(duì)文件的刪除只是刪除對(duì)數(shù)據(jù)的指向蓖租,所以文件恢復(fù)非常方便粱侣。在刪除數(shù)據(jù)后,文件系統(tǒng)在了解到這些存儲(chǔ)空間的釋放后蓖宦,會(huì)對(duì)其進(jìn)行重新分配齐婴。HDD在對(duì)這些空間的數(shù)據(jù)重寫上效率很高,但是SSD就慢很多稠茂。SSD具有非常高效的寫操作速度柠偶,但是對(duì)已有數(shù)據(jù)的重寫速度比較忙。TRIM可以定期的將刪除文件清除掉睬关,避免重寫過(guò)程诱担,釋放出空間,保證SSD的高效寫操作电爹。如果SSD空間充足蔫仙,可以不必開(kāi)啟TRIM。

引用資料描述:
An SSD organizes data internally into 4k pages and groups 128 pages into a 512k block. SSDs can write only into empty 4k pages and erase in big 512k block increments. This means that although SSDs can write very quickly, overwriting is a much slower process. The TRIM command keeps your SSD running at top speed by giving the filesystem a way to tell the SSD about deleted pages. This gives the drive a chance to do the slow overwriting procedures in the background, ensuring that you always have a large pool of empty 4k pages at your disposal.

方法1-修改/etc/rc.local文件 推薦

在最后一條命令exit 0 前增加如下內(nèi)容:
fstrim -v /
/為root分區(qū)(SSD硬盤分區(qū))
不建議使用fstrim-all命令丐箩,在非三星和Intel SSD上會(huì)有性能瓶頸摇邦,參考URL:deepin 2014對(duì)SSD支持如何

方法2-cron

echo -e "#\x21/bin/sh\nfstrim -v /" | sudo tee /etc/cron.daily/trim
sudo chmod +x /etc/cron.daily/trim

方法3-修改/etc/fstab文件

修改SSD相關(guān)分區(qū)條目,增加discard 和 noatime參數(shù)
/dev/sda1 / ext4 discard,noatime,commit=600,errors=remount-ro 0 1

  • discard參數(shù)啟動(dòng)SSD的TRIM功能雏蛮,可以提升性能和使用持久性涎嚼。
  • notime參數(shù)告訴文件系統(tǒng)不要記錄文件的最后訪問(wèn)(讀取)時(shí)間挑秉,只記錄最后修改時(shí)間法梯。可以有效減少對(duì)磁盤的讀寫次數(shù),因?yàn)樵L問(wèn)頻率相對(duì)修改來(lái)說(shuō)非常多立哑。

PS:
1.如果發(fā)現(xiàn)noatime參數(shù)影響了某些應(yīng)用的使用夜惭,可以修改notime為relatime,將會(huì)讓文件系統(tǒng)將最后修改時(shí)間作為文件的最后訪問(wèn)時(shí)間铛绰。
2.不推薦這個(gè)方式(只針對(duì)discard參數(shù)诈茧,noatime還是推薦的)。The disadvantage of this method is, that it may cause the system to slow down. Because it forces the system to apply TRIM instantly on every file deletion. That's why this method is not my favourite.

分區(qū)對(duì)齊

SSD硬盤內(nèi)部的操作是512k的塊大小捂掰。在SSD剛剛發(fā)布的時(shí)候敢会,磁盤分區(qū)系統(tǒng)可能會(huì)有分區(qū)對(duì)其的問(wèn)題,現(xiàn)在的版本都支持SSD的512k分區(qū)范圍了:

  • fdisk uses a one megabyte boundary since util-linux version 2.17.1 (January 2010).
  • LVM uses a one megabyte boundary as the default since version 2.02.73 (August 2010).

建議使用fdisk这嚣, fdisk 會(huì)預(yù)留 2048 個(gè)扇區(qū)鸥昏,gdisk 卻是從 64 扇區(qū)開(kāi)始分。 姐帚。

一個(gè)例子看一下512k對(duì)其的效果:

~$ sudo sfdisk -d /dev/sda 
Warning: extended partition does not start at a cylinder boundary. 
DOS and Linux will interpret the contents differently. 
# partition table of /dev/sda 
unit: sectors 

/dev/sda1 : start=     2048, size=   497664, Id=83, bootable 
/dev/sda2 : start=   501758, size=155799554, Id= 5 
/dev/sda3 : start=        0, size=        0, Id= 0 
/dev/sda4 : start=        0, size=        0, Id= 0 
/dev/sda5 : start=   501760, size=155799552, Id=83 

每一個(gè)分區(qū)的開(kāi)始和結(jié)束都是可以整除512的吏垮。

減少SWAP讀寫頻率

完全不使用SWAP將會(huì)導(dǎo)致hibernation(休眠)機(jī)制失效,所以最好的方案就是將swappiness 值修改為最小罐旗,最小化SWAP分區(qū)的操作膳汪。這樣Linux會(huì)優(yōu)先使用RAM,然后才是SSD九秀。

$ sudo vim /etc/sysctl.d/99-sysctl.conf
vm.swappiness = 1
vm.vfs_cache_pressure = 50

vm.swappiness=0太激進(jìn)遗嗽,有可能會(huì)導(dǎo)致內(nèi)存不夠用。
重啟后生效

更換低延遲 IO-Scheduler

默認(rèn)的IO調(diào)度器CFQ(Copletely Fair Queuing)是針對(duì)HDD的優(yōu)化鼓蜒,對(duì)多個(gè)讀操作進(jìn)行分組隊(duì)列媳谁。但是SSD的讀取效率非常高,完全不必要分組排隊(duì)友酱,使用一個(gè)隊(duì)列就可以了。建議更換為:

  • NOOP(當(dāng)系統(tǒng)只有SSD的情況下非常建議)
  • Deadline模式

配置文件/etc/default/grub


GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video-1024x768M@75m"
修改為:
GRUB_CMDLINE_LINUX_DEFAULT="elevator=noop quiet splash video-1024x768M@75m"

更新grub配置:grub-mkconfig -o /boot/grub/grub.cfg

插播小技巧
如果grub需要改變分辨率柔纵,修改/etc/default/grub
GRUB_GFXMODE=1024x768

定期檢查SSD狀態(tài)缔杉,并做數(shù)據(jù)備份

可以使用命令sudo smartctl -data -A /dev/sda查看SSD狀態(tài),觀察壽命搁料。

maurits@nuc:~$ sudo smartctl -data -A /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-26-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
 
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 18
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
1   Raw_Read_Error_Rate     0x0000   006   000   000    Old_age   Offline      -       6
3   Spin_Up_Time            0x0000   100   100   000    Old_age   Offline      -       0
4   Start_Stop_Count        0x0000   100   100   000    Old_age   Offline      -       0
5   Reallocated_Sector_Ct   0x0000   100   100   000    Old_age   Offline      -       0
9   Power_On_Hours          0x0000   100   100   000    Old_age   Offline      -       2592
12  Power_Cycle_Count       0x0000   100   100   000    Old_age   Offline      -       258
232 Available_Reservd_Space 0x0000   100   100   000    Old_age   Offline      -       4914564640
233 Media_Wearout_Indicator 0x0000   100   000   000    Old_age   Offline      -       100
 
maurits@nuc:~$

233一行的值就是壽命或详,默認(rèn)為100,當(dāng)小于10的時(shí)候就要非常注意了郭计。

更加深入的優(yōu)化

Solid State Drive (SSD): optimize it for Ubuntu 14.04, Linux Mint 17.1 and Debian

參考鏈接

  1. Archlinux Wiki SSD
  2. How To Optimize Linux For SSDs
  3. 5 crucial optimizations for SSD usage in Ubuntu Linux
  4. Solid State Drive (SSD): optimize it for Ubuntu 14.04, Linux Mint 17.1 and Debian
  5. Debian Wiki's SSDOptimization
  6. How to properly activate TRIM for your SSD on Linux: fstrim, lvm and dm-crypt
  7. Linux系統(tǒng)中對(duì)SSD硬盤優(yōu)化的方法
  8. linux下SSD優(yōu)化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霸琴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子昭伸,更是在濱河造成了極大的恐慌梧乘,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異选调,居然都是意外死亡夹供,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門仁堪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)哮洽,“玉大人,你說(shuō)我怎么就攤上這事弦聂《⒒纾” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵秘症,是天一觀的道長(zhǎng)捌肴。 經(jīng)常有香客問(wèn)我,道長(zhǎng)徙融,這世上最難降的妖魔是什么洒缀? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮欺冀,結(jié)果婚禮上树绩,老公的妹妹穿的比我還像新娘。我一直安慰自己隐轩,他們只是感情好饺饭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著职车,像睡著了一般瘫俊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悴灵,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天扛芽,我揣著相機(jī)與錄音,去河邊找鬼积瞒。 笑死川尖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茫孔。 我是一名探鬼主播叮喳,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缰贝!你這毒婦竟也來(lái)了馍悟?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤剩晴,失蹤者是張志新(化名)和其女友劉穎锣咒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宠哄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年壹将,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毛嫉。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诽俯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出承粤,到底是詐尸還是另有隱情暴区,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布辛臊,位于F島的核電站仙粱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏彻舰。R本人自食惡果不足惜伐割,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刃唤。 院中可真熱鬧隔心,春花似錦、人聲如沸尚胞。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)笼裳。三九已至唯卖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間躬柬,已是汗流浹背拜轨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留允青,地道東北人撩轰。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像昧廷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子偎箫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容