cp /etc/fstab ~/fstab-backup
gksudo gedit /etc/fstab
# / was on /dev/sda2 during installation
UUID=587e0dc5-2db1-4cd9-9792-a5459a7bcfd2 / ext4 noatime,nodiratime,errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=2c919dc4-24de-474f-8da0-14c7e1240ab8 /home ext4 noatime,nodiratime,defaults 0 2
在这些更改生效之前,您需要重新启动您的机器。
3) 减少操作系统和应用程序的写入
假设您不在运行关键任务的产品服务器上,大多数人在出现问题时不会查看日志(尤其是对于大多数Ubuntu用户来说,严重错误很少发生)。因此,您可以配置Ubuntu,使所有日志都写入RAM内存而不是SSD。
注意:只有在安装了您要使用的所有软件(特别是像Apache Web服务器这样的东西)之后,才进行以下更改,否则您可能会遇到/var/log中缺少目录的一些问题
有关此方法的背景,请参见在ubuntu-eee.com上延长闪存驱动器的寿命
使用编辑器打开/etc/fstab文件(假设您已备份/etc/fstab文件)
gksudo gedit /etc/fstab
# Uncomment these after all server based applications installed - eg. apache
#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=0755 0 0
#tmpfs /var/log/apt tmpfs defaults,noatime 0 0
# none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0
一般来说,我不会太在意 - 关于 SSD 寿命的担忧被夸大了。你可以阅读这篇详细文章,解释为什么你真的不用担心。简而言之,现代 SSD 内部的电路会自动进行磨损均衡管理,他们比你更懂如何做得更好。
文章中计算了一个以每秒 80M 的连续写入速率接收写入的 SSD 的寿命。寿命为51年。这是基于2007年的技术 - 现在的 SSD 寿命会更长。而且你几乎肯定不会以每秒 80M 的速度全天候地写入你的 SSD。
然而,随着时间的推移,性能下降可能成为一个问题,而TRIM就是解决方案。有两个选项:
discard
选项添加到您的挂载选项中,前提是您正在使用ext4。)我找到了一篇博文报告说在删除文件时,discard选项会减慢您的系统速度。
您可以偶尔使用fstrim手动执行(或在cron作业中执行)。如果您只有一个分区,您所需做的就是:sudo fstrim /
noop
。您可以通过内核参数elevator=noop
或通过在rc.local中输入echo noop > /sys/block/sda/queue/scheduler
来设置此调度程序。noatime
和discard
Tmpfs
将tmp放在ramdisk上可以延长固态硬盘的使用寿命。
要使用此功能,请在fstab中添加以下行:none /tmp tmpfs defaults 0 0
一般来说,如果你想深入了解这个话题,我推荐阅读this优秀的维基文章。
在Ubuntu上为您的SSD快速调整课程:
文件系统
Arch wiki提到了几个适合SSD的文件系统选项 - 其中一个不稳定,其他是ext*系列。我认为ext4是其中最好的选择之一。
注意:对于ext4,您可能希望使用discard
挂载选项。
fstab
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
tmpfs /tmp tmpfs nodev,nosuid,noatime,mode=1777 0 0
/dev/sda1 / ext4 defaults,noatime,discard,errors=remount-ro 0 1
/dev/sda2 /home ext4 defaults,noatime,discard,user_xattr 0 2
/dev/sda3 /windows ntfs defaults,noatime,discard,umask=007,gid=46 0 0
这里有几个重要的事项:
noatime
和discard
选项。相关信息请参考这里。调度程序
考虑将默认调度程序从cfq(完全公平队列)切换到noop或deadline调度程序以适应SSD。例如,使用noop调度程序只是按照请求接收的顺序处理数据,而不考虑数据在磁盘上的物理位置。这个选项被认为对于SSD是有优势的,因为SSD上的寻道时间对所有扇区都是相同的。
在/etc/rc.local中添加以下内容:
# SSD performance tuning
echo noop > /sys/block/sda/queue/scheduler
信息
/tmp
放在内存中,很容易出现内存不足的情况,因为许多程序使用/tmp
作为存储空间(例如用于存储DVD映像的Brasero)。 - arrangetmpfs
默认是 RAM 的 10%。但是可以使用 size
选项来调整大小。 - Andrejs Cainikovs需要 UPS。在 /etc/sysctl.conf
文件中
vm.dirty_writeback_centisecs = 15000
vm.swappiness = 10
/etc/syslog.conf
或/etc/rsyslog.d/
,并将所有形式为/var/log/
的路径改写为在路径前面写一个减号("-")。在修改之前,mail.err。/var/log/mail.err
在
/var/log/mail.err
上有一个错误的邮件。
使用FS btrfs
并使用-o ssd
选项。
/etc/cron.weekly/fstrim
的内容如下:#!/bin/sh
# call fstrim-all to trim all mounted file systems which support it
set -e
# This only runs on Intel and Samsung SSDs by default, as some SSDs with faulty
# firmware may encounter data loss problems when running fstrim under high I/O
# load (e. g. https://launchpad.net/bugs/1259829). You can append the
# --no-model-check option here to disable the vendor check and run fstrim on
# all SSD drives.
exec fstrim-all
1https://en.wikipedia.org/wiki/Trim_%28computing%29
2如何启用Trim?
tmpfs /var/tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,noatime,mode=0755 0 0
tmpfs /var/log/apt tmpfs defaults,noatime 0 0
如果我在使用系统时遇到任何问题,我会将这些问题注释掉,以便在重新启动或强制重启后仍然能够检查一切。
另外,你不需要nodiratime,noatime选项可以自行处理这两个功能。
至于TRIM,如果你的硬件/软件支持它,那是必须的,我不在fstab中使用discard。我创建了一个每日定时任务,因为我的电脑始终保持开启状态,方法如下:
gksu gedit /etc/cron.daily/trim
#!/bin/sh
LOG=/var/log/trim.log
echo "*** $(date -R) ***" >> $LOG
fstrim -v / >> $LOG
fstrim -v /home >> $LOG
sudo chmod +x /etc/cron.daily/trim
gksu gedit /etc/rc.local
# Modification for SSD
# you may want to add more folders to be checked/created to this list
for dir in apparmor apt ConsoleKit cups dist-upgrade fsck gdm installer news ntpstats samba speech-dispatcher unattended-upgrades; do
if [ ! -e /var/log/$dir ] ; then
mkdir /var/log/$dir
fi
done
/sbin/fstrim --all || true
命令。 - jarno这里有一些关于如何调整和优化Ubuntu、Linux Mint上的SSD的好信息,你可能会感兴趣。你可以在http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html找到更多相关内容。
使用preload
要在Ubuntu、Linux Mint或基于debian的发行版上安装preload:
# apt-get update && apt-get install preload
$ su -
# nano /etc/sysctl.conf
vm.swappiness = 10
tmpfs
行是被注释掉的,那为什么添加这些行会有任何区别呢?我们需要取消注释吗? - Oxwivi