【发布时间】:2018-08-07 03:29:53
【问题描述】:
据我了解,目前在 linux 上,没有办法先对文件进行 mmap(在 xfs 或 ext4 上)然后写入文件并以某种方式使用大页面。
这是正确的还是过时的信息,现在有办法这样做吗?
谢谢。
【问题讨论】:
-
是什么让你这么想?你可以mmap(2) 和
MAP_HUGETLB和MAP_HUGE_1GB。请在您的问题中显示一些minimal reproducible example -
@BasileStarynkevitch 如果您尝试使用 MAP_HUGETLB | 的 mmap | MAP_SHARED ,它以 EINVAL 失败。 (处理磁盘文件时需要 MAP_SHARED。)
-
这可能取决于您使用的内核和文件系统(以及它们的配置和设置)。这可能对性能影响不大(例如,使用 posix_fadvise(2) 可能更重要)
-
你知道任何支持这种组合的文件系统(MAP_HUGETLB | MAP_SHARED)吗?
-
这是一个不同的问题。我不知道。也许文件系统的设置(例如块大小,
mkfs时间)很重要。你应该编辑你的问题来激发它(它看起来像一些XY problem...)
标签: linux mmap huge-pages