排程器 debugfs¶
啟用 debugfs 啟動核心後,將可以訪問 /sys/kernel/debug/sched 下的排程器特定除錯檔案。 其中一些檔案描述如下。
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 是任務最初派生時使用的起始“掃描延遲”。
scan_period_max_ms 是掃描任務虛擬記憶體的最長時間(以毫秒為單位)。 它有效地控制了每個任務的最小掃描速率。
scan_size_mb 是給定掃描中掃描的頁面數,以兆位元組為單位。