对于NUMA计算机,Linux提供了
set_mempolicy
系统调用,它允许进程为内存分配定义其首选的NUMA节点。
是否有一些类似的功能可以更改另一个正在运行的进程的内存策略?所以像set_mempolicy(pid, ...)
这样的东西,其中pid
对应于一个不同的运行进程?
请注意,另一个进程(我要更改其内存策略的那个进程)已经在运行,我无法控制它。所以这样的解决方案:
set_mempolicy(...);
fork(); // now new process has the same memory policy
不是我要找的东西。
最佳答案
mems
包含所需的节点,memory_migrate
包含1
tasks
文件进程的新分配将根据cpuset的
mems
配置完成,并且当任务添加到集合中时将迁移现有页面。注意确实感觉上像是服务器故障Q/A,但如果感觉更好,则可以用C编写cpuset管理。