Cluster
為什麼要配置集群節點在記憶體不足時重新啟動?
我可以訪問一個研究型 HPC 集群,該集群的配置是,如果您的作業嘗試使用比節點可用記憶體更多的記憶體,則節點會崩潰並自動重新啟動。這似乎是常見的做法,例如參見https://www.osc.edu/documentation/knowledge_base/out_of_memory_oom_or_excessive_memory_usage
為什麼要這樣配置,而不是配置為僅終止需要太多記憶體的程序?在這兩種情況下,您都會失去工作,但後者似乎對整個集群更好,因為節點可以更快地重用。還是作業系統無法保證在這種情況下恢復記憶體?
重新啟動節點可確保節點在分配下一個作業之前正常工作。此外,當您執行記憶體不足的節點並開始交換時,它會變慢並可能變得無響應。在這種情況下,他們可能會使用 IPMI 之類的東西來重啟節點。
根據您描述的環境以及通過探勘您提供的連結可以找到的一些資訊,聽起來您正在使用的集群被配置為無盤或無狀態系統,這意味著整個作業系統被載入到記憶體中來自遠端儲存的作業系統映像。
確保跨多個節點正確終止並行作業可能是一個複雜的過程,並且確保正確完成終止和清理通常比簡單地重新啟動節點需要更多時間。在開始作業之前讓節點進入乾淨狀態對於確保集群的最高性能是必要的。
以這種方式配置節點的確切原因還取決於集群上使用的供應和資源管理系統