如何为Boost interprocess的managed_shared_memory配置大页(HugePages)
我正在使用boost::interprocess::managed_shared_memory实现一个vector,核心代码如下:
// Vector, SharedData typedefs mempool_ = segment_.find_or_construct<Vector<SharedData>>(mempool_name_.c_str())(size_, segment_.get_segment_manager());
当size_ = 32K时代码运行正常,但经过多轮性能分析后发现:每当访问跨越4KiB内存边界的连续元素时,延迟会出现明显跳变。这显然是因为操作系统默认页大小为4KiB,这类延迟跳变由页错误(page faults)导致。
由于我的应用场景对延迟极为敏感,我尝试通过**大页(hugepages)**来增大该共享内存段的页大小,以此避免这类页错误。
我在Boost相关讨论中找到了相关线索,其中提到有一个相关问题的ticket已被修复,但始终找不到为managed_memory_segment设置MAP_HUGETLB标志的官方文档,恳请大家提供帮助!
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

