调度器调试文件说明
numa_balancing 目录
numa_balancing 目录用于保存控制 NUMA 平衡功能的文件。如果来自该功能的系统开销过高,则可以通过 scan_period_min_ms、scan_delay_ms、scan_period_max_ms 和 scan_size_mb 文件来控制内核对 NUMA 提示错误进行采样的频率。
scan_period_min_ms、scan_delay_ms、scan_period_max_ms、scan_size_mb
自动 NUMA 平衡会扫描任务的地址空间并取消映射页面,以检测页面是否放置正确,或者数据是否应迁移到任务所在的内存节点。每个“扫描延迟”时刻,任务会扫描其地址空间中的下一个“扫描大小”数量的页面。当达到地址空间的末尾时,扫描器会从头开始重新扫描。
“扫描延迟”和“扫描大小”的组合确定了扫描速率。当“扫描延迟”减小时,扫描速率会增加。每个任务的扫描延迟和因此扫描速率是自适应的,并取决于历史行为。如果页面放置正确,则扫描延迟会增加,否则扫描延迟会减少。“扫描大小”不是自适应的,但是“扫描大小”越大,扫描速率就越高。
更高的扫描速率会导致更高的系统开销,因为必须捕获页面错误,并且可能需要迁移数据。然而,扫描速率越高,如果工作负载模式发生变化,则任务的内存就越快地迁移到本地节点,并且可以最大程度地减少由于远程内存访问而造成的性能影响。这些文件控制了扫描延迟的阈值和扫描的页面数量。
- scan_period_min_ms:以毫秒为单位的扫描任务虚拟内存的最小时间。它有效地控制了每个任务的最大扫描速率。
- scan_delay_ms:任务初始fork时使用的起始“扫描延迟”。
- scan_period_max_ms:以毫秒为单位的扫描任务虚拟内存的最大时间。它有效地控制了每个任务的最小扫描速率。
- scan_size_mb:对于给定扫描,扫描的页面数量是多少兆字节。