Ubuntu系统SSD硬盘优化全记录

笔记本/便携移动设备,手机平板等软硬件
ixepet
帖子: 25
注册时间: 2012-12-14 4:42
系统: MAC OS X

Ubuntu系统SSD硬盘优化全记录

#1

帖子 ixepet » 2012-12-23 8:56

硬件改造
固态硬盘(64G,2.5寸,SATA3.0)装入原先的硬盘位置,购买一个光驱位硬盘托架,将机械硬盘(500G)装入原先的光驱位置。这几种材料都已经很常见,笔记本外观不会有什么瑕疵。

系统安装
1.下载ubuntu光盘镜像
http://www.ubuntu.com/download
2.利用u盘安装
此时,计算机已经没有光驱可用,利用UltraISO的“写入硬盘镜像”将ISO文件写入u盘中。
3.安装
大部分过程与普通安装方法一致,/挂载点分配20G,/home挂载点分配其他SSD容量,再新创建一个/store挂载点分配所有的机械硬盘容量。所有的分区格式都选ext4。

优化设置
这部分重点介绍。

1.使用Ext4 without journaling文件系统
传统的SSD+Linux组合一般推荐Ext2文件系统,主要是考虑到Ext3、Ext4需要额外的记录日志,会缩短SSD使用寿命,而且新出现的TRIM技术在Ext2中有两个缺点:
仅支持离线TRIM,换句话说文件系统必须只读挂载;
需要手动执行hdparm命令或wiper.sh脚本。
Ext4则没有这些限制,允许TRIM后台运行,并且日志记录功能可以手动关闭(没有日志的情况下,文件系统更容易损坏,如突然断电),如果你甘愿冒这样的风险,从而延长SSD使用寿命,值得一试。另外,许多测试中如:Testing EXT4 & Btrfs On A Serial ATA 3.0 SSD,像Btrfs这样为SSD准备的文件系统不如Ext4速度快(用SSD不就为了快么)。
所以,上面安装系统时,选择了Ext4系统,接下来需要关闭日志功能。
首先,系统挂载时无法停用日志功能,所以需要进入刚才的U盘系统,利用root权限执行:

代码: 全选

tune2fs -O ^has_journal /dev/sda1
即关闭/dev/sda1上的日志功能。
然后,运行操作系统检测:

代码: 全选

e2fsck -f /dev/sda1
不这样,文件系统可能会出错。
最后,重启,进入SSD中的系统,检查是否设置成功:

代码: 全选

dmesg | grep EXT4
如果出现:

代码: 全选

EXT4-fs (sda1): mounted filesystem without journal
说明设置成功。
原来是:mounted filesystem with ordered data mode
如果需要再次开启日志功能,只要运行tune2fs -O has_journal /dev/sda1即可。

2.开启TRIM功能
TRIM是一种操作系统调度SSD块写入的方式。主要是因为同一个SSD的闪存单元频繁操作会磨损,影响使用寿命,区别于传统的机械硬盘处理删除数据。Linux内核自2.6.33开始支持TRIM。
首先,检查内核版本是否支持TRIM:

代码: 全选

uname -a
然后,检查SSD硬盘是否支持TRIM:

代码: 全选

hdparm -I /dev/sda
如果显示比如(不同硬件可能不同提示):

代码: 全选

* Data Set Management TRIM supported
说明支持。
这两个条件都满足,在/etc/fstab中将:
/dev/sda1 / ext4 defaults 改为:
/dev/sda1 / ext4 discard,defaults 分区、挂载点、已经存在的选项不一定一样。
测试新的fstab文件:

代码: 全选

mount -oremount /dev/sda1
然后挂载:

代码: 全选

mount
如果显示discard字样,说明成功,如:

代码: 全选

/dev/sda1 on / type ext4 (rw,discard)
3.swap空间处理
对于大内存来说swap基本上都是空闲的,除非电脑进入休眠状态,系统会将内存内容转到swap中。有了SSD,开关机都在几秒中,对我来说swap没用,所以上面直接不分配swap空间。
如果分配了也行,空间要小,而且通过设置/proc/sys/vm/swappiness里面的值,来减少swap换出量:

代码: 全选

echo 1 > /proc/sys/vm/swappiness
0到100之间,值越大换出量越大。

4.设置noatime
当访问文件时,系统会更新last-access这个文件/目录元数据,设置noatime后可以减少这种操作。
将2步中的:
/dev/sda1 / ext4 discard,defaults 改为:
/dev/sda1 / ext4 noatime,discard,defaults 测试设置成功方法与上面一样。

5.使用noop磁盘调度
通常操作系统调度机械硬盘时会提供一些数据的物理位置,这样有利于机械硬盘优化寻道,但是对SSD没意义,所以采用noop磁盘调度,即简单发送请求,可以提高效率。
可以通过以下命令查看调度方法:

代码: 全选

cat /sys/block/sda/queue/scheduler
比如显示:

代码: 全选

[noop] deadline cfq
在/etc/rc.local中添加如下语句:

代码: 全选

echo noop > /sys/block/sda/queue/scheduler
6.内存分区加速
如果内存够大,可以用ramdisk的方式,将一些经常变化的位置如/tmp放入内存,加快速度,减少对SSD的访问。
依然是加在/etc/fstab中:

代码: 全选

tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

代码: 全选

tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0

代码: 全选

tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0
更新方法与2相同,记得将浏览器等程序的缓存目录设置到/tmp下。

Ubuntu SSD 现在开机时间10秒左右。

转载自 http://plumgo.cc/blog/2012/01/05/ssd-op ... untu-note/
上次由 ixepet 在 2012-12-24 3:27,总共编辑 1 次。
ixepet
帖子: 25
注册时间: 2012-12-14 4:42
系统: MAC OS X

Re: Ubuntu系统SSD硬盘优化全记录

#2

帖子 ixepet » 2012-12-23 8:59

在/etc/rc.local中添加如下语句:

代码: 全选

echo noop > /sys/block/sda/queue/scheduler
不知道这个怎么添加,有大虾知道这个是是什么意思么? :em06
是不是cd到/etc/rc.local下之后运行

代码: 全选

echo noop > /sys/block/sda/queue/scheduler
:em20
头像
iamfbi
帖子: 1081
注册时间: 2009-02-06 9:18
来自: 小僧乃吐蕃国大雪山大轮寺护国法师座下四大护法之西域妖僧是也

Re: Ubuntu系统SSD硬盘优化全记录

#3

帖子 iamfbi » 2012-12-23 10:43

有个问题,没看到有关4K对齐的内容,难道不要需要按4K对齐来分区?。。
Laptop: i5-460m hm55 4g 320g hd5470 14'led 2.3kg (acer 4738g)
Windows XP 7 8 all in one partition.
Ubuntu 10.04 LTS
Mac OS X 10.6.7
折腾笔记
论坛随手记
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: Ubuntu系统SSD硬盘优化全记录

#4

帖子 Strange » 2012-12-23 11:18

如果是用的parted来分区的话,已经自动对齐了
ニンニク入れますか?
x60 with gentoo
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: Ubuntu系统SSD硬盘优化全记录

#5

帖子 枫叶饭团 » 2012-12-23 12:25

我觉得scheduler可以考虑一下bfq
克莫托
帖子: 2
注册时间: 2012-01-29 16:08

Re: Ubuntu系统SSD硬盘优化全记录

#6

帖子 克莫托 » 2012-12-23 13:21

我正好也在研究升级SSD的问题,不过我计划里SSD只跑WIN7,UBNTU到机械硬盘里跑,搭车问下各位
直接应用下我刚刚在系统安装区发的贴
请教SSD+机械双硬盘安装UBUNTU12.04的问题发表于 : 2012-12-23 13:10
我现在使用神舟K580P笔记本,工作需要使用UBUNTU,下班后玩游戏需要WIN7,用自带的750G机械硬盘安装双系统(WIN7,UBUNTU64X都是单独分区安装)一切正常。
始终觉得5400转的机械硬盘跑WIN7太吃力散热又不好,打算趁年底败一个SSD,初步看中经典的镁光M4,120G。
计划想把SSD装旧硬盘位置,旧硬盘装光驱位,都是SATA2应该问题不大。
现在问题是想SSD单独分一个区跑WIN7,机械硬盘划300G装UBUNTU64X,剩下做资料盘,不知道UBUNTU能否支持这样不同硬盘分别挂载做的双启动?(旧机械硬盘应该是要挂载做从盘了吧)
电脑小白提问,描述不是太清楚,盼望有经验的朋友回答一下。
麻烦大家注意下我UBUTNU64X是12.04版本,因为12.10版本似乎不支持Bumblebee,无法关闭GT555M的独显。
ixepet
帖子: 25
注册时间: 2012-12-14 4:42
系统: MAC OS X

Re: Ubuntu系统SSD硬盘优化全记录

#7

帖子 ixepet » 2012-12-24 3:11

iamfbi 写了:有个问题,没看到有关4K对齐的内容,难道不要需要按4K对齐来分区?。。
安装的时候格式化一下,就自动对其了
ixepet
帖子: 25
注册时间: 2012-12-14 4:42
系统: MAC OS X

Re: Ubuntu系统SSD硬盘优化全记录

#8

帖子 ixepet » 2012-12-24 3:12

枫叶饭团 写了:我觉得scheduler可以考虑一下bfq
请问这个是什么?怎么设置呢? :em06
ixepet
帖子: 25
注册时间: 2012-12-14 4:42
系统: MAC OS X

Re: Ubuntu系统SSD硬盘优化全记录

#9

帖子 ixepet » 2012-12-24 3:13

克莫托 写了:我正好也在研究升级SSD的问题,不过我计划里SSD只跑WIN7,UBNTU到机械硬盘里跑,搭车问下各位
直接应用下我刚刚在系统安装区发的贴
请教SSD+机械双硬盘安装UBUNTU12.04的问题发表于 : 2012-12-23 13:10
我现在使用神舟K580P笔记本,工作需要使用UBUNTU,下班后玩游戏需要WIN7,用自带的750G机械硬盘安装双系统(WIN7,UBUNTU64X都是单独分区安装)一切正常。
始终觉得5400转的机械硬盘跑WIN7太吃力散热又不好,打算趁年底败一个SSD,初步看中经典的镁光M4,120G。
计划想把SSD装旧硬盘位置,旧硬盘装光驱位,都是SATA2应该问题不大。
现在问题是想SSD单独分一个区跑WIN7,机械硬盘划300G装UBUNTU64X,剩下做资料盘,不知道UBUNTU能否支持这样不同硬盘分别挂载做的双启动?(旧机械硬盘应该是要挂载做从盘了吧)
电脑小白提问,描述不是太清楚,盼望有经验的朋友回答一下。
麻烦大家注意下我UBUTNU64X是12.04版本,因为12.10版本似乎不支持Bumblebee,无法关闭GT555M的独显。
电脑的默认启动盘应该只能选择一个吧?
要不就是每次启动的时候进入BOOT选择菜单选择进入哪个系统?
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

Re: Ubuntu系统SSD硬盘优化全记录

#10

帖子 jarlyyn » 2012-12-24 9:43

个人感觉日志还是很有必要的。除非是折腾系统的,不然数据很可能比整个电脑都有价值。
把/var,/home,/tmp分出去就差不多了。
如果常跑apache/mysql之类的,估计还要把对应的var目录链回来
pengqian
帖子: 120
注册时间: 2010-12-23 10:23

Re: Ubuntu系统SSD硬盘优化全记录

#11

帖子 pengqian » 2014-02-05 13:50

jarlyyn 写了:个人感觉日志还是很有必要的。除非是折腾系统的,不然数据很可能比整个电脑都有价值。
把/var,/home,/tmp分出去就差不多了。
如果常跑apache/mysql之类的,估计还要把对应的var目录链回来
同意, 删 journal, 哪天发现文件损坏不能恢复了,岂不因小矢大
头像
phoenixlzx
帖子: 2245
注册时间: 2009-07-29 20:11
系统: Arch Linux
来自: Gensokyo
联系:

Re: Ubuntu系统SSD硬盘优化全记录

#12

帖子 phoenixlzx » 2014-02-05 15:34

ThinkPad T420
Intel 530 Series 240G

代码: 全选

ThinkPad-T420 :: ~ » systemd-analyze 
Startup finished in 3.328s (kernel) + 895ms (userspace) = 4.224s
我用Arch。
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

Re: Ubuntu系统SSD硬盘优化全记录

#14

帖子 qy117121 » 2014-02-05 21:14

学习下,以后买来后也换ssd
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 chuan@ubuntu.org.cn
头像
phoenixlzx
帖子: 2245
注册时间: 2009-07-29 20:11
系统: Arch Linux
来自: Gensokyo
联系:

Re: Ubuntu系统SSD硬盘优化全记录

#15

帖子 phoenixlzx » 2014-02-07 14:13

顺便说下最好别用 noop... 一个高IO操作会卡住你所有的IO...

bfq 是最好的选择。
回复