View a markdown version of this page

對Slurm會計中遺失的任務記錄進行故障診斷 - AWS PCS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對Slurm會計中遺失的任務記錄進行故障診斷

Slurm 會計報告中缺少執行到完成的任務,例如 sacctsreport命令的輸出。記錄僅在有限的時段內不存在,通常是遵循非常高的任務提交率期間。會計報告會在該時段前後完成。本主題適用於已啟用Slurm會計的叢集。如需會計的詳細資訊,請參閱 AWS PCS 中的混沌會計

常見原因

Slurm 控制器協助程式 (slurmctld) 不會直接將會計資料寫入會計資料庫。它會透過內部記憶體內佇列將資料傳送至Slurm資料庫常駐程式 (slurmdbd)。如果任務提交速度比將記錄slurmdbd遞交至資料庫更快,佇列可以達到其大小上限。當佇列已滿時, 會slurmctld捨棄新的會計訊息,而不是將其新增至佇列。

捨棄的訊息不會重試,因此從會計資料庫永久缺少其所攜帶的任務歷史記錄。只有會計資料受到影響。任務排程和任務執行會繼續正常運作。slurmdbd 已遞交的記錄會保留在資料庫中。當佇列耗盡時,會計會自動恢復。

Resolution

確認原因並降低再次發生的機率
  1. 搜尋叢集的slurmctld日誌,尋找類似如下的項目。

    error: agent queue is full (33794), discarding DBD_JOB_START:1425 request

    每個項目對應至一個捨棄的會計訊息。訊息類型可識別遺失的記錄,例如 DBD_JOB_STARTDBD_STEP_STARTDBD_JOB_COMPLETEDBD_STEP_COMPLETE。如果叢集未交付排程器日誌,請設定日誌交付。如果條件再次發生,這可讓您確認原因。如需詳細資訊,請參閱AWS PCS 中的排程器日誌

  2. 在叢集的 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-identifier my-cluster \ --slurm-configuration \ 'SlurmdbdCustomSettings=[{parameterName=CommitDelay,parameterValue="1"}]'
  3. 確認設定已就位。在 中 AWS 管理主控台,檢視叢集的其他排程器設定。在 中 AWS CLI,執行下列命令並檢查回應slurmConfiguration的欄位。

    aws pcs get-cluster --cluster-identifier my-cluster
注意

slurmctld捨棄的會計記錄無法復原。在受影響時段期間執行的任務不會收到會計報告。

預防

若要在佇列飽和發生時偵測佇列,而不是稍後尋找遺失的記錄,請將slurmctld日誌交付至 Amazon CloudWatch Logs、Amazon Simple Storage Service (Amazon S3) 或 Amazon Data Firehose,並監控它們是否有agent queue is full項目。如需詳細資訊,請參閱AWS PCS 中的排程器日誌

在以高任務提交率執行工作負載的叢集1上,將 CommitDelay設定為 。