首页/系统/Linux 内核与性能调优速查/set_mempolicy 与 mbind 应用级 NUMA 策略
本包目录(357 条)
sysctl 内核参数72 条CPU 与调度60 条
内存与 OOM58 条
磁盘与 IO32 条网络栈调优98 条性能分析工具37 条

set_mempolicy 与 mbind 应用级 NUMA 策略

应用可通过系统调用设置 NUMA 内存策略:MPOL_DEFAULT 默认、MPOL_BIND 绑定节点、MPOL_PREFERRED 优先、MPOL_INTERLEAVE 交错分布。

接口set_mempolicy(2) / mbind(2)
策略DEFAULT / BIND / PREFERRED / INTERLEAVE
作用域线程级(set_mempolicy)、区间级(mbind)

C 片段

C 片段
unsigned long mask = 1UL << 0;
set_mempolicy(MPOL_BIND, &mask, 64);            // 后续分配绑定节点 0
mbind(addr, len, MPOL_INTERLEAVE, &mask2, 64, 0); // 区间交错分配

易错点

  • 策略按线程生效且可继承,线程池场景注意策略是否被意外带到其他工作线程
  • BIND 策略下节点内存不足会导致分配失败,需配合备用节点与监控

数据来源与参考

  • man-pages set_mempolicy(2)/mbind(2)
  • Linux 内核 Documentation/admin-guide/mm/numa_memory_policy.rst
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌