4 KB 扇区磁盘上的 Linux:实用性建议(2)

所有磁盘都显示了未对齐分区带来的损失,2009 西部数据磁盘和 2013 东芝磁盘像是一个类似的模式,2012 希捷模型显示了一种不同的模式。因此,我分两组介绍每一种结果的模式。

西部数据和东芝测试结果

2010 年在西部数据磁盘上运行的许多测试表明,所带来的性能损失是适中的。对于文件系统创建,性能损失值的范围为 0.96(对于 XFS)到 7.94(对于 ReiserFS),平均值为 2.79。在 2013 年的东芝测试上,对于文件系统创建,性能损失值的范围为 1.22(对于 ext4)到 1.82(对于 ext3 和 XFS),平均值为 1.57。由于文件系统创建通常进行得很少,所以这种性能损失并不重要。西部数据读取测试产生的比率范围为 0.95 到 1.25,包括最多 25% 的速度损失,如 图 2 所示。值为 1.00 意味着没有损失,值越高则表示性能越差。东芝的性能损失值范围为 0.94 到 1.11,如 图 3 所示。

图 2. 在西部数据 WD-10EARS 磁盘上使用未对齐分区的读取性能损失

在西部数据 WD-10EARS 磁盘上使用未对齐分区时,读取性能损失为 5-15%

图 3. 在东芝 DT01ACA300 磁盘上使用未对齐分区的读取性能损失

在东芝 DT01ACA300 磁盘上使用未对齐分区时,读取性能损失为 -6% to 11%

大型文件的写入性能也会有适度的性能损失。在西部数据磁盘上,性能损失值的范围为 1.10(对于 XFS 和 JFS)至 6.02(对于 ReiserFS),平均值为 2.10;在东芝磁盘上,性能损失值的范围为 1.03(对于 ext4)至 2.38(对于 ReiserFS),平均值为 1.34。许多峰值都由 ReiserFS 的敏感性引起的。消除 ReiserFS 的敏感性之后,西部数据和东芝驱动器上其余 5 个文件系统的平均性能损失值分别为 1.31 和 1.13。删除文件的效果与此类似。在西部数据驱动器上,这些值的范围为 1.04(对于 XFS)到 4.78(对于 JFS),平均值为 1.97;在东芝驱动器上,性能损失值的范围为 1.05(对于 ext4)到 1.59(对于 JFS),平均值为 1.30。

小型文件的创建(提取内核原始码)对写入性能的影响最大。在西部数据磁盘上,对原始码提取的影响范围为 1.04(对于 ext4)到 25.53(对于 ReiserFS),平均值为 10.9。在本测试中,第二影响因素是 XFS,平均值为 1.82。在东芝磁盘上,影响范围为 1.44(对于 Btrfs)到 3.17(对于 ReiserFS),平均值为 1.92。由于这些数字是未对齐与对齐性能的比率,所以当值为 10.9 时,表示在完全对齐的分区上花了 10 秒钟,而在未对齐的分区上花了 109 秒 — 差别巨大!

图 4 总结了西部数据磁盘上所有文件系统的写入性能损失,而 图 5 总结了东芝磁盘上所有文件系统的写入性能损失。和之前一样,值为 1.00 表示没有损失;值越高就表示性能越差。

图 4. 在西部数据 WD-10EARS 磁盘上使用未对齐分区的写入性能损失

在西部数据 WD-10EARS 磁盘上使用未对齐分区时,写入性能损失范围为 1.04 到 25.53

图 5. 在东芝 DT01ACA300 磁盘上使用未对齐分区的写入性能损失

在东芝 DT01ACA300 磁盘上使用未对齐分区时,写入性能损失为 1.44 到 3.17

希捷硬盘测试结果

在希捷 ST2000L003 磁盘上进行测试时,产生了截然不同的结果。文件系统创建的性能损失范围为 1.09(对于 ReiserFS)到 1.97(对于 JFS),平均值为 1.42,这个结果与东芝磁盘上的结果类似。

令人惊讶的首先是读访问结果,如 图 6 所示。读取性能在希捷驱动器上受到的影响远大于在西部数据或东芝驱动器上受到的影响,在 JFS 下,小型文件读取的性能损失值的范围高达 8.54,平均值为 4.13。甚至大型文件读取性能也受到了影响,平均值为 1.88,而且最高可达 3.76(对于 ReiserFS)。

图 6. 在希捷 ST2000L003 磁盘上使用未对齐分区的读取性能损失

在希捷 ST2000L003 磁盘上使用未对齐分区时,读取性能损失范围为 1.03 到 8.54

希捷磁盘的写入性能损失如 图 7 所示。小型文件创建的性能损失的范围为 1.23(对于 Btrfs)到 3.04(对于 ext3),平均值为 1.98。大型文件创建的性能损失的范围为 1.04(对于 Btrfs)到 3.87(对于 ReiserFS),平均值为 1.78。对于大多数文件系统来说,最大的损失在文件删除中,范围为 1.23(对于 Btrfs)到 7.75(对于 ext4),平均值为 4.14。

图 7. 在希捷 ST2000L003 磁盘上使用未对齐分区的写入性能损失

该柱状图显示,在希捷 ST2000L003 磁盘上使用未对齐分区时,写入性能损失的范围为 1.14 到 7.75

测试结果分析

三个硬盘上的结果模式之间的差异令人感到惊讶。我几乎花费了近四年的时间进行这些测试,我认为变量(磁盘品牌和型号、非磁盘硬件和 Linux 内核版本)不能精确地说明造成这些差异的原因。我对关于特定磁盘品牌的推断结果都很谨慎;尤其是,与西部数据磁盘相比,东芝磁盘的性能损失较小,这可能是改进的内核功能或主板磁盘硬件造成的。但是,不同的结果模式对于大多数人而言并不重要,因为结论是相同的:使用未对齐的分区会带来重大的性能损失。

注意:这些测试并不反映所有文件系统的总体性能。例如,例如,您不应该因为 ReiserFS 产生一些最大的性能差异,就认为它对性能的影响不好。不过,ReiserFS 对不合理的对齐比其他文件系统更敏感,至少在某些重要测试中是这样。

如果使用了逻辑卷管理器 (LVM),那么您需要意识到,LVM 的对齐规则与分区的对齐规则是相同的。虽然您不需要关心 LVM 中的逻辑卷对齐,但您应该注意 LVM 分区本身的对齐。少数文件系统的抽样检查使用了 LVM 来复制以前的结果。

在实际情况中,所有这些意味着什么?您首先应该确定磁盘的物理扇区大小。如果发现您已经有一个高级格式化驱动器,则应该正确地对齐您的分区。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0b05f8dcafbc42141c61338602fab0f7.html