定安县网站建设_网站建设公司_页面加载速度_seo优化
2025/12/30 20:56:01 网站建设 项目流程

numa balancing缺陷分析

numa balance是linux内核用来解决多numa架构下,跨节点访存引起性能下降的问题。

原理

numa balance通过两个步骤来解决上述问题。

  1. 周期性发起进程页面扫描,扫描过程中会断开页表映射;
  2. 进程访问被断开映射的内存时发生page fault,do_numa_page会处理这个错误,在此函数中会找到线程的prefer numa,进而迁移线程内存,使得线程和其访问的内存在一个numa节点,从而减少跨节点访存。

numa balance存在的问题

从上面可以看出,numa balance起作用是有代价的,断开页表主动制造page fault,迁移内存,线程都会引发性能下降,这是显而易见的。

除了上述问题,numa balance还有一些隐含的问题。

  • 首先numa balance会迁移线程,从而可能带来numa间的负载不均衡。load balance可能会将线程迁移出其prefer numa。于是会发生乒乓迁移的现象。虽然内核已经在load balance的代码中做了numa balance的考虑,但是并不能完全避免。
  • numa balance对线程数很少的进程没有明显作用。单个线程可以独享LLC,没有cache争抢,内存数据可以缓存在cache中,于是可以无视跨节点访存问题,迁移没有明显的正向作用。

 

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询