【问题标题】:Comparing performance of ext4 and NTFS比较 ext4 和 NTFS 的性能
【发布时间】:2015-10-20 01:31:07
【问题描述】:

我正在使用 ext4 的 C 和 NTFS(分别在 RHEL 和 Windows 7 上)作为课程项目的一部分进行基准测试。

我正在尝试为基准进行实验,但对于应该做什么以及我的想法是否有意义(我的教授缺课 2 周,班级没有助教)感到非常困惑。以下是粗体问题的详细信息:

  • 比较顺序读取速度:我计划有几个不同大小的文件,并对这些文件执行顺序读取,每次读取的大小为一个块(两个文件系统上的大小均为 4K)。 我应该对不同大小的文件还是对同一个文件执行此操作?此外,以块大小的倍数读取是否有意义?当然,对于第一次缓存之外的读取将发挥作用。

  • 比较随机读取速度:以不同的文件偏移量运行读取(同样是块大小)。 同样的问题与上述相同。

  • 比较写入速度:禁用两者的写入缓存并写入块大小。

我主要关心的是我运行测试的文件的大小以及每个操作(读/写)使用的大小。

对于我可以在我的实验中包含的内容以及我的方法所需的任何其他更改的任何其他指示,我们将不胜感激。

我还计划比较元数据操作,但我正在处理这些操作,如果需要,我可能会在稍后发布问题。

【问题讨论】:

  • 列表中的每一个点都太宽泛了,更不用说整个问题了。你应该自己做一些研究,不要指望别人做你的任务。
  • @Olaf:您能告诉我更多关于我可以具体说明的内容吗?我保持问题简短,但我已经做了很多研究,但由于我提出的问题而无法取得进展。而且我不指望任何人来完成我的任务 - 我只是需要帮助才能开始。
  • 当您问是否应该“读取块大小”时,我不确定您的意思。
  • @Schwern:我的意思是读取文件系统块大小的倍数。既然你提到了它,我应该编辑这个问题。听起来不对。

标签: c linux windows benchmarking


【解决方案1】:

作为文件系统的基准,它们将是无效的。变数太多了。假设您将使用相同的硬件,您的变量是...

  • 文件系统(ext4 与 NTFS)
  • 操作系统(Redhat 与 Windows)
  • C 编译器(gcc/clang 与 Visual C++(我猜))

您正在对 Redhat + 他们的 C 编译器 + ext4Windows + 他们的编译器 + NTFS 进行基准测试。 不能从中得出关于文件系统的一般性陈述,只能关于组合。您可能想指出作业中的这个缺陷以获得加分,或者它可能只会惹恼助教。您的来电。

Redhat 确实有一个 NTFS 实现,因此您可以通过对 Redhat 上的所有内容进行基准测试来消除变量,但是您将在 Redhat 的 NTFS 实现与 Redhat 的 ext4 实现之间进行基准测试。这与 Windows 的 NTFS 实现无关。

您可以进行额外的测试来消除编译器和操作系统变量,但我不知道它们是什么。


暂且不说,因为这是家庭作业,所以您会询问要运行哪些场景。答案是全部。基准应该反映现实世界的使用情况,在现实世界中,您读取和写入不同大小和不同缓存状态的文件。将它们放在一个大矩阵中并运行所有组合。

通常,文件大小范围应从块大小一直到 4 gigs(模拟视频文件)。增量越多越好。 1024 的幂将是一个良好的开端,三个构成曲线。所以 4K、4M、4G。

您应该在启用和不启用缓存的情况下进行基准测试,以测试文件系统在读取未缓存文件和读取缓存文件时的工作情况。两者都代表现实世界的场景。

【讨论】:

  • 感谢您的回答!好吧,我会在 Windows 上使用 MingW,硬件是一样的,但是是的 - 它必须是 ext4 和 NTFS。虽然我会在教授回来后与他核实。你所描述的或多或少与我的想法一致。除了我可以考虑的文件系统操作性能的任何其他测试吗?
  • @Cygnus 是的,测试它同时处理多个读取和写入的能力很重要。如果您的文件系统一次只能由一个程序使用,那就不好了。您可以从所有顺序读取、所有小写入中提出各种方案,但请务必输入一个随机选择操作的方案(对两种设置使用相同的种子)。多线程 IO 性能(与多进程相比)也很重要。
  • @Cygnus 您还需要测量 CPU 和内存使用情况。如果一个快速的文件系统占用了你所有的 CPU 和内存,那么它就没有任何好处。最后,作弊看看iozone做了什么。
  • 因为你实际上不能用 GCC 构建 NTFS,或者用 MSVC++ 构建未经修改的 ext4,或者在 Linux 下运行 MS 的 NTFS,或者在 Windows 下运行 ext4(同样未经修改),这似乎是一个有争议的问题.我认为将系统的所有不可分割部分作为一个完整的单元进行基准测试是完全有效的。
  • @LukeHutchison 您可以这样做,但必须将其设置为使用 NTFS 对 Windows 7 与使用 ext4 的 Redhat 进行基准测试。这样的基准不能简单地得出关于 NTFS 与 ext4 的结论。这样的基准有用吗?取决于你为什么这样做。由于这是针对课程的,因此了解变量并努力消除或减轻它们是重要的一课。
猜你喜欢
  • 1970-01-01
  • 2012-03-29
  • 2015-05-22
  • 2019-02-05
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 2011-06-09
  • 2020-02-22
相关资源
最近更新 更多