1

我一直在玩不同的文件系统,并在使用 mmap 时比较各种文件系统的性能。

令我惊讶的是,更改为 JFS 直接使写入性能翻了一番。我认为已经对页面缓存进行了写入,所以当写入完成后,应用程序会继续快速运行吗?它实际上是linux下的同步操作吗?

读取性能略有提高,但没有那么显着。

4

3 回答 3

1

写入直接对页面缓存进行的,但是第一次写入每个页面时会导致一个小错误,将页面标记为脏页。此时文件系统有机会执行一些工作 - 在 的情况下xfs,这涉及延迟分配记帐和范围创建。您可以尝试事先预分配整个文件,以查看这如何/是否会改变事情。(jfs使用通用 mmap 操作,它不提供页面可写时使用的回调)。

另请注意,一旦脏页缓存页面的比例超过/proc/sys/vm/dirty_ratio,内核将从后台异步回写切换到脏页由脏页的进程同步回写。

于 2011-03-24T00:22:08.927 回答
0

XFS 和 JFS 之间的一个显着区别是 XFS 支持障碍并默认启用它们,但 JFS 根本不支持障碍。因此,当在具有回写缓存的磁盘上运行时,JFS 是不安全的(但速度很快!)。

JFS 在您的测试中具有更好的写入性能可能是这种情况的影响。

于 2011-03-24T06:06:07.277 回答
-1

也许您应该查看每个文件系统的基准。每个 FS 在某些条件下都很快 AFAIK。

http://fsbench.netnation.com/是我在 Google 中用于 xfs jfs 基准测试的第一个热门产品。浏览结果似乎表明 xfs 在许多情况下的速度更快。

我建议您在目标机器上运行基准测试以自己找出答案。

一种猜测是,您注意到的加速很可能出现在 jfs 的最佳情况下。

于 2011-03-24T00:04:26.810 回答