本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對Slurm會計中遺失的任務記錄進行故障診斷
Slurm 會計報告中缺少執行到完成的任務,例如 sacct或 sreport命令的輸出。記錄僅在有限的時段內不存在,通常是遵循非常高的任務提交率期間。會計報告會在該時段前後完成。本主題適用於已啟用Slurm會計的叢集。如需會計的詳細資訊,請參閱 AWS PCS 中的混沌會計。
常見原因
Slurm 控制器協助程式 (slurmctld) 不會直接將會計資料寫入會計資料庫。它會透過內部記憶體內佇列將資料傳送至Slurm資料庫常駐程式 (slurmdbd)。如果任務提交速度比將記錄slurmdbd遞交至資料庫更快,佇列可以達到其大小上限。當佇列已滿時, 會slurmctld捨棄新的會計訊息,而不是將其新增至佇列。
捨棄的訊息不會重試,因此從會計資料庫永久缺少其所攜帶的任務歷史記錄。只有會計資料受到影響。任務排程和任務執行會繼續正常運作。slurmdbd 已遞交的記錄會保留在資料庫中。當佇列耗盡時,會計會自動恢復。
Resolution
確認原因並降低再次發生的機率
-
搜尋叢集的
slurmctld日誌,尋找類似如下的項目。error: agent queue is full (33794), discarding DBD_JOB_START:1425 request
每個項目對應至一個捨棄的會計訊息。訊息類型可識別遺失的記錄,例如
DBD_JOB_START、DBD_STEP_START、DBD_JOB_COMPLETE或DBD_STEP_COMPLETE。如果叢集未交付排程器日誌,請設定日誌交付。如果條件再次發生,這可讓您確認原因。如需詳細資訊,請參閱AWS PCS 中的排程器日誌。 -
在叢集的 slurmdbd 組態
1中將CommitDelay參數設定為 。使用此設定,將資料庫遞交slurmdbd分組,而不是個別遞交每個記錄,這會提高耗盡佇列的速率。使用叢集的SlurmdbdCustomSettings屬性來套用設定。如需詳細資訊,請參閱 Slurm 文件CommitDelay中的 在 AWS PCS 中設定自訂 SlurmDBD 設定和 。 重要
SlurmdbdCustomSettings會取代叢集的 slurmdbd 設定,而不是新增至叢集。從更新請求中省略的任何設定都會移除。如果叢集可能已經有 slurmdbd 設定,aws pcs get-cluster請先執行、{parameterName=CommitDelay,parameterValue="1"}新增至擷取的清單,然後提交完整清單。範例– 在叢集
CommitDelay上設定aws pcs update-cluster --cluster-identifiermy-cluster\ --slurm-configuration \ 'SlurmdbdCustomSettings=[{parameterName=CommitDelay,parameterValue="1"}]' -
確認設定已就位。在 中 AWS 管理主控台,檢視叢集的其他排程器設定。在 中 AWS CLI,執行下列命令並檢查回應
slurmConfiguration的欄位。aws pcs get-cluster --cluster-identifiermy-cluster
注意
已slurmctld捨棄的會計記錄無法復原。在受影響時段期間執行的任務不會收到會計報告。
預防
若要在佇列飽和發生時偵測佇列,而不是稍後尋找遺失的記錄,請將slurmctld日誌交付至 Amazon CloudWatch Logs、Amazon Simple Storage Service (Amazon S3) 或 Amazon Data Firehose,並監控它們是否有agent queue is full項目。如需詳細資訊,請參閱AWS PCS 中的排程器日誌。
在以高任務提交率執行工作負載的叢集1上,將 CommitDelay設定為 。