IT之家了解到,migrate_pages () 在 Linux Kernel 中负责页面迁移(Page Migration),而页面迁移可以指定一个进程的页面至其指定的内存节点上。它的设计初衷是为了:通过将页面移动到该进程所处的 NUMA 节点上来减少内存访问的延迟。后来内存规整和内存热插拔等场景都使用了此功能。
TLB(translation lookaside buffer)可以认为是一块高速缓存。数据 cache 缓存地址 (虚拟地址或者物理地址) 和数据。TLB 缓存虚拟地址和其映射的物理地址。TLB 根据虚拟地址查找 cache,它没得选,只能根据虚拟地址查找。所以 TLB 是一个虚拟高速缓存。
migrate_pages () 函数用于将进程中的所有页面移动到另一组节点。在安装补丁之后,migrate_pages () 测试结果显示 IPI 在测试期间降低了 99.1%,每秒成功迁移的页面数增加了 291.7%。