为什么将文件系统类型从XFS更改为JFS会提高mmap文件的写入性能?

问题描述 投票:1回答:3

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

我很惊讶,更改为JFS后,写入性能立即提高了一倍。我以为已完成对页面缓存的写操作,所以当写操作完成后,应用程序会继续快速运行吗?它实际上是Linux下的同步操作吗?

读取性能略有提高,但不明显。

linux performance mmap memory-mapped-files
3个回答
1
投票

Writes are直接完成到页面缓存,但是第一次用写操作击中每个页面将导致轻微错误,将页面标记为脏。此时,文件系统有机会执行某些工作-在xfs的情况下,这涉及延迟分配记帐和扩展区创建。您可以尝试预先预分配整个文件,以了解如何/是否可以改变情况。 (jfs使用通用mmap操作,该操作不提供使页面可写时使用的回调。)

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


0
投票

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


0
投票

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


0
投票

我注意到,将文件系统从ext4更改为xfs会使我的系统的mmap性能降低了一半。 XFS做某事是不明智的。

© www.soinside.com 2019 - 2024. All rights reserved.