簡體   English   中英

如何在 slurm 工作期間監控資源?

[英]How to monitor resources during slurm job?

我在我們的大學集群上運行作業(普通用戶,沒有管理員權限),它使用 SLURM 調度系統,我有興趣隨時間繪制 CPU 和內存使用情況,即在作業運行時。 我知道sacctsstat並且我正在考慮將這些命令包含在我的提交腳本中,例如

#!/bin/bash
#SBATCH <options>

# Running the actual job in background
srun my_program input.in output.out &

# While loop that records resources
JobStatus="$(sacct -j $SLURM_JOB_ID | awk 'FNR == 3 {print $6}')"
FIRST=0
#sleep time in seconds
STIME=15
while [ "$JobStatus" != "COMPLETED" ]; do
    #update job status
    JobStatus="$(sacct -j $SLURM_JOB_ID | awk 'FNR == 3 {print $6}')"
    if [ "$JobStatus" == "RUNNING" ]; then
        if [ $FIRST -eq 0 ]; then
            sstat --format=AveCPU,AveRSS,MaxRSS -P -j ${SLURM_JOB_ID} >> usage.txt
            FIRST=1
        else
            sstat --format=AveCPU,AveRSS,MaxRSS -P --noheader -j ${SLURM_JOB_ID} >> usage.txt
        fi
        sleep $STIME
    elif [ "$JobStatus" == "PENDING" ]; then
        sleep $STIME
    else
        sacct -j ${SLURM_JOB_ID} --format=AllocCPUS,ReqMem,MaxRSS,AveRSS,AveDiskRead,AveDiskWrite,ReqCPUS,AllocCPUs,NTasks,Elapsed,State >> usage.txt
        JobStatus="COMPLETED"
        break
    fi
done

但是,我並不真正相信這個解決方案:

  • 不幸的是, sstat沒有顯示當前使用了多少 CPU(僅為平均值)

  • 如果我嘗試記錄一段時間內的內存使用情況,MaxRSS 也沒有幫助

  • 似乎仍然存在一些錯誤(作業完成后腳本不會停止)

有誰知道如何正確地做到這一點? 也許甚至用tophtop而不是sstat 任何幫助深表感謝。

Slurm 提供了一個插件來將作業的配置文件(PCU 使用情況、內存使用情況,甚至某些技術的磁盤/網絡 IO)記錄到 HDF5 文件中。 該文件包含跟蹤的每個度量的時間序列,您可以選擇時間分辨率。

你可以用

#SBATCH --profile=<all|none|[energy[,|task[,|filesystem[,|network]]]]>

請參閱此處的文檔。

要檢查此插件是否已安裝,請運行

scontrol show config | grep AcctGatherProfileType

它應該輸出AcctGatherProfileType = acct_gather_profile/hdf5

這些文件在引用的文件夾中創建ProfileHDF5Dir SLURM配置參數(在slurm.conf

至於您的腳本,您可以嘗試將sstat替換為與計算節點的 SSH 連接以運行ps 假設安裝了pdshclush ,您可以運行以下命令:

pdsh -j $SLURM_JOB_ID ps -u $USER -o pid,state,cputime,%cpu,rssize,command --columns 100 >> usage.txt

這將為您提供每個進程的 CPU 和內存使用情況。

最后要注意的是,您的工作永遠不會終止,因為它會在while循環終止時終止,而while循環將在工作終止時終止......條件"$JobStatus" == "COMPLETED"永遠不會從內部觀察到劇本。 當作業完成時,腳本被終止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM