提升 SSD/HDD 性能的最佳 /etc/fstab 设置

提升 SSD/HDD 性能的最佳 /etc/fstab 设置

在查看了不同作者的测试博客文章后,我知道 EXT4 在 2011 年就已经是 3 年来最快的。但是,我发现还有其他设置可以使 SSD 更快:http://www.howtogeek.com/62761/how-to-tweak-your-ssd-in-ubuntu-for-better-performance/

sudo gedit /etc/fstab

  • 添加到/分区 noatime,nodiratime
  • 如果内核>2.6.33,也添加丢弃
  • tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

https://wiki.ubuntu.com/MagicFab/SSDchecklist

sudo gedit /etc/fstab

  • 添加到/分区 noatime,就这样

  • 以及data=writeback安装选项 _如果您格式化的磁盘没有日志记录。否则添加数据=有序这应该是完整日志记录和完全无日志记录之间的一个很好的折衷方案。

  • tmpfs /tmp tmpfs nodev,nosuid,noexec,mode=1777 0 0

为什么只有noatime?我如何知道磁盘在安装时是否没有日志记录?哪个更快?无日志记录还是相反?无日志记录data=writeback和日志记录有什么区别data=ordered

为什么tmpfs /tmp两篇文章不同,它们有何不同,哪个更好,为什么?

所有这些都是关于 SSD 的,但我可以在 HDD 中使用相同的设置吗?我想找到有关 HDD 和 SSD 的答案,因为我已经在我的https://wiki.ubuntu.com/Kangarooo/AfterCleanInstallation

答案1

howtogeek 网站是您提到的两个网站中更负责任的一个。 atime 调整只是元数据优化,用于传递文件何时会收到特定时间戳更新的信息。 无论您使用哪种媒体,它都适用,还取决于您的应用程序对元数据一致性的敏感程度。 大多数桌面用户不会错过它。

至于禁用日志功能……这简直是疯了。这就是使用这些高级文件系统的全部意义所在:在确保数据完整性的同时获得更好的性能。要明白,如果你进行这种交易,你就是在用你的个人数据换取速度的适度提升。我个人不推荐这样做。大多数人从一开始就没有保留好的备份来弥补承担这种风险。

分区对齐确实很重要但不调整这一点也不会让你丧命。这实际上取决于磁盘的访问频率。假设它未对齐,如果你定期(服务器)进行大量 I/O,你会看到改进。对于平均桌面使用率,谁知道呢,可能并不明显。

除了分区对齐很有价值这一观点之外,我会忽略您提到的 Ubuntu Wiki。这是一个更负责任的链接:

http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/index.html?ca=dgr-lnxw074KB-Disksdth-LX

Ubuntu wiki 中的一些建议完全是错误的,例如使用“nodev”重新配置 tmpfs。它已经是 RAMFS 了!

将 Firefox 缓存移至 /tmp 可能会提高当前会话的速度。但这可能存在安全隐患(您家里不再受保护),而且每次启动时都会重建缓存,因为 tmpfs 不是持久的。

概括:

添加discardext4 选项是明智之举,写回是默认模式,保留日志设置,atime 调整很好,切换到 deadline 或 nop 调度程序也可能有用,分区对齐是可选的。其余的都是废话。

答案2

对于 SSD 托管的文件系统,该discard选项不再建议使用,因为它会减慢速度,因为 Linux 内核对该命令的实现未优化。(如果我没记错的话,TRIM 请求一次只使用一个 ATA 扇区范围,因此速度很慢。)

相反,创建一个每日运行的 cron 作业fstrim -v /(或无论您的 SSD 分区是什么)。是 Ubuntu 14.04 LTS 将会附带的解决方案。

答案3

此外ppetraki 的回答,如果担心闪存磨损,您应该为您的/tmp文件夹安装一个 RAM 文件系统。

tmpfs /tmp tmpfs defaults,size=15%,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=10%,mode=1777 0 0

但是不要将/var/log文件移动到 RAM,除非你确定不会崩溃 ;) 并且你已经安装了所有创建新/var/log目录的服务器软件包(例如 apache)并且不希望它们在启动之间消失:

tmpfs /var/log tmpfs defaults,mode=0755 0 0 
tmpfs /var/log/apt tmpfs defaults 0 0
none /var/cache unionfs dirs=/tmp:/var/cache=ro 0 0

这是JR0cket 的回答以及有关该主题的其他博客文章。

答案4

不要在 /tmp 上启用“noexec”,否则您将面临某些需要从 /tmp 执行的 3D 驱动程序的问题。现代硬件的 NVIDIA 驱动程序有此要求,如果您启用了“noexec”,则您拥有的任何应用程序都会出现段错误(如 xscreensaver glmatrix)。

相关内容