加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

支持NUMA的Linux命名共享内存

发布时间:2020-12-14 01:39:43 所属栏目:Linux 来源:网络整理
导读:Windows API提供CreateFileMappingNuma函数( http://msdn.microsoft.com/en-us/library/windows/desktop/aa366539(v=vs.85).aspx)以在特定NUMA节点上创建命名共享内存空间. 到目前为止,我还没有找到Linux的等效功能. 我目前的方法如下: 分配命名的共享内存(
Windows API提供CreateFileMappingNuma函数( http://msdn.microsoft.com/en-us/library/windows/desktop/aa366539(v=vs.85).aspx)以在特定NUMA节点上创建命名共享内存空间.

到目前为止,我还没有找到Linux的等效功能.

我目前的方法如下:

>分配命名的共享内存(使用shm_open(…))
>确定当前的NUMA节点(使用numa_move_pages(…))
>将页面移动到目标节点(再次使用numa_move_pages(…))

有谁知道更好的方法?

编辑:为了记录:我提出的实施确实按预期工作!

解决方法

这听起来不错.请注意,在您调用shm_open()/ fruncate()的位置没有分配页面(不要忘记使用ftruncate()来设置大小!).内核只是创建vma并等待将来的代码访问以将页面故障转换为物理内存.因此,在此状态下调用numa_move_pages()可能会产生在相关NUMA节点中创建和填充新页面的效果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读