文件支持的MMAP与巨大的页面?

file backed mmap with huge page?

提问人:LeXav 提问时间:5/13/2023 更新时间:5/13/2023 访问量:77

问:

-> Linux - Debian - Ext4 - 内核 6.1

其他讨论

其他相关问题:

我的语境

我目前使用一个 mmap 文件(“/user_db/db.txt”),该文件在单个应用程序的多个线程之间共享,用于读/写访问。

注意:我的数据库需要持久性存储。

它运行良好,即使在混沌测试下,线程在访问内存区域等时也会尊重锁。

现在,我一直在阅读关于大页面的内容,以进一步了解。尤其是 1GB 的,因为我的文件已经跨越了多个 GB。 如果能为我的应用启用它,那就太好了。

另类思维

但当我读到它时,我试图实现的目标是不可能的,而且肯定是错误的方法(或者截至 2023 年是否有解决方案?

我应该改用 DIRECT_IO(意味着读取 512 字节的块,用我的数据修改偏移量,然后写回磁盘),但这太多了,512 字节太大了,会为我的访问模式带来更大的争用。不过,缓存行大小很好。

对我来说,最好的选择是大小为 1GB 的透明大页面(我手头有 32GB+ RAM 系统用于这个应用程序)。

我错过了任何现代选择吗?谢谢

Linux MMAP 大页面

评论

0赞 stark 5/13/2023
所有磁盘 I/O 都使用磁盘块大小,通常为 512 或 4096 字节。
0赞 LeXav 5/13/2023
@stark:我明白了,那Direct_IO路就好了。

答: 暂无答案