与这篇文章类似,我想在特定的 NUMA 节点(不一定是本地的)上创建一个命名的共享内存段(在 CentOS 7 上通过shm_open()
+创建)。mmap()
该帖子建议使用numa_move_pages()
.
我还有几个问题:
如果另一个进程(在不同 NUMA 本地的核心上运行)稍后启动并
mmap()
s 到同一个命名的共享内存段,操作系统会决定将命名的共享内存段移动到该进程本地的 NUMA 吗?如果是,我该如何预防?在我指定 through 之后,是否还有其他情况将命名的共享内存段移动到另一个 NUMA
numa_move_pages()
?给定一个命名的共享内存段
/shm/dev
,我如何检查它属于哪个 NUMA 节点?
我查看了numactl
,它的--membind
选项与我想要的很接近,但我不确定如果两个不同的进程用于--membind
2 个不同的节点会产生什么影响。谁赢?我想如果#3得到回答,我可以测试一下。
谢谢!