A.14. numad

numad」為一自動 NUMA 親和性管理 daemon。此工具監控系統內 NUMA 拓樸和資源使用量,以動態改善 NUMA 資源分配和管理。
請注意,「numad」啟用時,其行為超越預設自動 NUMA 平衡行為。

A.14.1. 使用自命令列的 numad。

欲使用「numad」為可執行檔,請運用:
# numad
numad」運作時,其活動會記錄在「/var/log/numad.log」。 此工具會運作至被以下命令停止為止:
# numad -i 0
停止「numad」 並不會將其在 NUMA affinity 中的改善移除。若系統使用量有巨大改變,再次運作「numad」將會更動親和性(affinity),以改善新操作模式下的效能。
欲限制「numad」管理至特定程序,請與以下選項一起啟動。
# numad -S 0 -p pid
-p pid
此選項新增特定「pid」至一明確涵蓋列表。指明的程序將不會被管理,直至其符合「numad」程序精確度執行緒為止。
-S 0
此工具設定掃描至「0」的程序類型,其限制「numad」管理至一明確涵蓋列表。
更多有關可使用的「numad」選項的詳細資訊,請參閱 「numad」 man page:
$ man numad

A.14.2. 將 numad 作為服務使用

numad」作為服務運作時,試圖根據目前的系統工作負載量,動態微調系統。其活動記錄在「/var/log/numad.log」。
欲啟動此服務,請運作:
# systemctl start numad.service
欲使服務在重新啟動後仍保存,請運作:
# chkconfig numad on
更多有關可使用的「numad」選項的詳細資訊,請參閱 「numad」 man page:
$ man numad

A.14.3. 放置前建議

numad」提供放置前建議服務,能夠透過各種工作管理系統取得,以協助其程序的 CPU 的最初繫結與記憶體資源。無論「numad」是否作為可執行檔案或一項服務,此放置前建議皆可使用。

A.14.4. 以 KSM 使用 numad

若 KSM 在一 NUMA 系統上使用,請更改「/sys/kernel/mm/ksm/merge_nodes」參數值至「0」,以避免 NUMA 節點中的頁面合併。其他情況下,因為節點中的頁面合併,所以 KSM 將增加遠端記憶體存取。此外,kernel 統計數據最終可能在大量跨節點合併而相互衝突。 若為以上情況, 在 KSM daemon 合併許多記憶體頁面後,「numad」可能對於正確的可使用記憶體的數量與位置有所混淆。KSM 僅在過度使用系統上記憶體的情況下有益。若您的系統有足夠的自由記憶體,您可以透過關閉和停止 KSM daemon 達到更好的效能。