13.5.8. 热拔出内存设备的注意事项
当计划热删除内存设备时,请考虑以下潜在的问题和限制。
- 迁移失败信息
- 当lining memory 时,您可以看到迁移失败信息,例如:
[ 6381.169189] page dumped because: migration failure
[ 6381.181353] migrating pfn 8842600 failed ret:2
...
这表示无法从目标删除的内存移动数据。内核重试内存迁移,通常会成功完成。但是,根据系统状况进行热移除失败:
- 删除后内存不足
- 如果移除后内存容量不足,内存迁移可能会失败。在开始热移除前,请确保有足够的可用内存。
- 使用 Transparent Hugepages
- 如果使用 Transparent Hugepages,则可能无法为 2MB 页面提供足够的可用内存,这可能会导致迁移延迟或失败。考虑禁用 Transparent Hugepages 或确保有足够的可用内存可用。
- 使用 Hugetlb 页面
- 1GB 巨页 :不支持热删除。
2MB 巨页 :迁移需要连续可用内存。如果内存不可用,则热移除会失败。
- 内存不足(OOM) Killer 风险
-
如果某个进程通过
mbind (MPOL_BIND)绑定到非一致性内存访问(NUMA)节点,并且您热插拔该节点,则内核会因为内存不足而触发 OOM Killer。
在执行热移除前停止这些进程。