AIX 内存亲缘关系支持

IBM'基于 POWER 处理器的平台SMP 硬件系统包含能够支持单、双或多处理器芯片的模块,具体取决于特定系统。 其中每个模块都包含多个处理器,并且系统内存连接到这些模块。 在任何处理器可以访问系统中的所有内存时,当在系统中寻址连接到自己所有的模块的内存(而非连接到其他模块的内存)时,处理器就有更快的访问和更高的带宽。

AIX® 操作系统通过尝试从包含导致缺页故障的处理器的模块中为进程分配内存来提供内存亲缘关系。 启用内存亲缘关系后,每个模块都有自己的虚拟内存管理器资源池 vmpool,其中包含一个或多个内存池。 每个内存池都有自己的页面替换守护程序 lrud。 每个池中的内存量基于模块中可用的内存量或管理程序层分配给虚拟内存管理器 (VMM) 的内存量。 在 AIX 7.1 和更高版本中,不得禁用受限 memory_affinity vmo 可调参数。 MEMORY_AFFINITY 环境变量可用于配置用户内存的放置。

操作系统通过沿模块边界组织其数据结构来提供内存亲缘关系。 缺省内存分配策略在 MCM 轮流查找。 为了获得优惠的本地 MCM 内存分配,应用程序可以导出 MEMORY_AFFINITY 环境变量,如下所示:
MEMORY_AFFINITY=MCM
该行为通过 fork(派生)传播。 但是,为了通过对 exec 函数的调用来保持此行为,该变量必须包含在传递到 exec 函数调用的环境字符串中。

相关信息

vmo 命令和 VMM 页面替换调整

bindprocessor 命令或子例程。

WLM 类和资源集属性