hbt*_*hbt 133 linux ssd filesystems
来自维基:
从 2.6.33 内核(2010 年初可用)开始的 Linux 操作系统支持重要的 TRIM 功能。但是,各种文件系统之间的支持仍然不一致或不存在。安装软件也不会执行正确的分区对齐。
那么,哪个文件系统最适合 SSD 并在安装过程中支持 TRIM + 分区对齐并且在 Ubuntu 上可用?
ali*_*gar 95
文件系统 EXT4 + TRIM:
交换分区:
分区对齐:
因此,在机械硬盘驱动器上使用带有 SWAP 的EXT4 + TRIM或在 SSD 上不使用 SWAP。
以上可以参考来源:How to Maximize SSD Performance 来实现。
Tot*_*tor 81
选择ext4,然后使用TRIM支持选项安装它,或者使用 FITRIMdiscard
(见下文)。noatime
如果您担心“SSD 磨损”,也可以使用该选项。
不要更改多应用服务器上的默认 I/O 调度程序 (CFQ),因为它提供进程之间的公平性并具有自动 SSD 支持。但是,在桌面上使用 Deadline可以在负载下获得更好的响应能力。
为了轻松保证正确的数据对齐,每个分区的起始扇区必须是 2048 (= 1 MiB)的倍数。您可以使用fdisk -cu /dev/sdX
来创建它们。在最近的发行版中,它会自动为您处理这个问题。
在 SSD 上使用交换之前请三思。与在 HDD 上交换相比,它可能会快得多,但它也会更快地磨损磁盘(这可能无关紧要,请参见下文)。
Ext4是最常见的 Linux 文件系统(维护良好)。它为 SSD 提供了良好的性能,并支持TRIM(和 FITRIM)功能以随着时间的推移保持良好的 SSD 性能(这会清除未使用的内存块,以便以后快速写入访问)。NILFS是专为闪存驱动器,但并没有 真的不是执行更好的ext4的基准。BTRFS,仍处于实验(并没有真正有更好的表现无论是)。
该TRIM功能,清除未通过文件系统不再使用的SSD模块。这将优化长期写入性能,并因其设计而推荐用于 SSD。这意味着文件系统必须能够将这些块告诉驱动器。当文件系统块被释放时discard
,ext4的mount 选项将发出这样的TRIM命令。这是网上弃牌。
然而,这种行为意味着一点性能开销。从 Linux 2.6.37 开始,您可以避免使用discard
并选择偶尔使用 FITRIM 进行批量丢弃(例如从 crontab 中)。该fstrim
实用程序执行这个(网上),还有-E discard
的选择fsck.ext4
。但是,您将需要这些工具的“最新”版本。
您可能希望限制对驱动器的写入,因为 SSD 在这方面的使用寿命有限。不过不要太担心,当今最差的 128 GB SSD 可以支持每天至少20 GB 的写入数据超过 5 年(每个单元 1000 个写入周期)。更好的(和更大的)可以持续更长时间:到那时你很可能已经更换了它。
如果您想在 SSD上使用交换,内核会注意到一个非旋转磁盘并随机交换交换使用(内核级磨损均衡):SS
当启用交换时,您将在内核消息中看到(固态):
在 /dev/sda1 上添加 2097148k 交换。优先级:-1 范围:1 跨:2097148k SS
另外,我同意aliasgar的大部分答案(即使其中大部分是 - 非法的? - 从本网站复制),但我必须部分不同意调度程序部分。默认情况下,期限调度是用于将旋转磁盘优化,因为它实现了电梯算法。所以,让我们澄清这一部分。
从内核 2.6.29 开始,会自动检测 SSD 磁盘,您可以通过以下方式进行验证:
cat /sys/block/sda/queue/rotational
Run Code Online (Sandbox Code Playgroud)
您应该1
购买硬盘和0
SSD。
现在,CFQ 调度程序可以根据此信息调整其行为。从 linux 3.1 开始,内核文档cfq-iosched.txt
文件说:
CFQ 对 SSD 进行了一些优化,如果它检测到可以支持更高队列深度的非旋转媒体(一次多个请求),[...]。
此外,截止日期调度程序尝试根据扇区号限制旋转磁盘上的无序磁头移动。引用内核文档deadline-iosched.txt
,fifo_batch
选项描述:
请求被分组到特定数据方向(读或写)的“批次”中,这些方向以递增的扇区顺序提供服务。
但是,在使用 SSD 时将此参数调整为 1 可能会很有趣:
此参数调整每个请求延迟和总吞吐量之间的平衡。当低延迟是主要问题时,越小越好(值 1 表示先到先得的行为)。增加 fifo_batch 通常会提高吞吐量,但代价是延迟变化。
一些基准测试 表明 ,不同调度程序之间的性能差异很小。那么,为什么不推荐公平呢?当CFQ 在替补席上很少表现不佳时。但是,在桌面设置中,由于其设计(尽管可能以较低的吞吐量成本),您通常会在负载下使用 Deadline体验更好的响应能力。
也就是说,更好的基准测试将尝试将 Deadline 与fifo_batch=1
.
默认情况下,要在 SSD 上使用 Deadline,您可以创建一个文件,/etc/udev.d/99-ssd.rules
如下所示:
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
Run Code Online (Sandbox Code Playgroud)
har*_*ymc 16
archlinux 文章Solid State Drives在文件系统的选择部分说:
文件系统有很多选项,包括 Ext2/3/4、Btrfs 等。
Btrfs
Btrfs 支持已包含在 Linux 内核的主线 2.6.29 版本中。有些人认为它对于生产用途来说还不够成熟,同时也有 ext4 的潜在继承者的早期采用者。鼓励用户阅读 Btrfs文章以获取更多信息。Ext4
Ext4 是另一个支持 SSD 的文件系统。它自 2.6.28 以来被认为是稳定的,并且已经足够成熟以供日常使用。与 Btrfs 相反,ext4 不会自动检测磁盘性质;用户必须使用 fstab 中的丢弃挂载选项(或使用 tune2fs -o discard /dev/sdaX)显式启用 TRIM 命令支持。
Btrfs 和 Ext4 都满足了高效使用 SSD 的两个主要要求:
对于性能,还有另外两个要求:
第一个是现在大多数 Linux 安装程序自动执行的。如果以“-cu”标志开始,fdisk 还将在 1024KB 边界创建分区。
第二个对于 Btrfs 是自动的,但对于 Ext4,这是通过将“discard”添加到“/etc/fstab”文件中每个 Ext4 分区的挂载选项列表来手动完成的。欲了解更多详细信息,请参阅本HOWTO。
在我看来,这对于 Ext4 需要很少的 fstab 摆弄是没有理由不使用这个成熟和优秀的文件系统。
归档时间: |
|
查看次数: |
133909 次 |
最近记录: |