Ubuntu系统SSD硬盘优化全记录

本文详细介绍如何通过更换硬盘、系统安装及优化设置等步骤提升Linux系统的性能。特别关注固态硬盘(SSD)与Ext4文件系统结合的最佳实践,包括关闭日志、启用TRIM功能、调整swap空间设置、设置noatime选项、采用noop磁盘调度以及使用内存分区来进一步加速。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.linuxidc.com/Linux/2012-09/70519.htm





硬件改造


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


系统安装


1.下载Ubuntu光盘镜像 http://www.linuxidc.com/Linux/2012-04/59239.htm


2.利用u盘安装


此时,计算机已经没有光驱可用,利用UltraISO的“写入硬盘镜像”将ISO文件写入u盘中。http://www.linuxidc.com/linux/2011-01/31729.htm


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下。


================================================


对于chrome浏览器缓存的优化
sudo rm -rf ~/.cache/google-chrome
sudo ln -s /tmp ~/.cache/google-chrome




对于apt-get 软件包 缓存的优化
mv -R /var/cache/apt /var/cache/apt_backup
ln -s /tmp /var/cache/apt


注意:在使用这种方法后,EOS/UBUNTU的更新管理器会报错(“错误:打开缓存失败”),把apt文件夹恢复后错误消失

### 优化Ubuntu系统下的机械硬盘性能 #### 修改文件系统的挂载选项 为了提升机械硬盘的读写速度,在`/etc/fstab`中适当设置挂载参数能够带来显著效果。对于频繁更新的日志或其他临时数据存储位置,推荐将其指向更快捷的介质比如RAM盘或是SSD,而非直接放置于HDD上[^5]。 #### 调整IO调度算法 Linux内核提供了多种I/O调度器供选择,默认情况下可能是CFQ (Completely Fair Queuing),但对于旋转式的传统硬盘来说,deadline或noop/no-mq往往能提供更佳的表现,因为这些策略减少了不必要的寻道动作,提高了顺序访问效率[^1]。 #### 定期执行碎片整理 不同于SSD不需要考虑这个问题,针对HDD定期实施defrag操作有助于保持较高的传输速率。可以通过工具如`e4defrag`来完成此任务,不过需要注意的是过度频繁地做这项工作反而会对设备造成损害[^3]。 #### 关闭不必要的日志记录和服务 减少磁盘活动的一个简单办法就是停用那些不重要的后台进程及其产生的持续写入行为。例如,如果服务器环境允许的话,可以考虑禁用syslog服务或将它的输出重定向到其他地方保存;另外还有图形界面相关的组件也可能成为负担所在[^4]。 ```bash sudo systemctl stop rsyslog.service sudo systemctl disable rsyslog.service ``` 以上措施综合运用可以在一定程度上改善基于Ubuntu发行版的操作系统在使用常规硬盘作为主要储存媒介时的整体效能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值