gpt4 book ai didi

memory - 如何在 slurm 工作期间监控资源?

转载 作者:行者123 更新时间:2023-12-04 21:33:48 34 4
gpt4 key购买 nike

我在我们的大学集群上运行作业(普通用户,没有管理员权限),它使用 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]]]]>
    查看文档 here .
    要检查此插件是否已安装,请运行
    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" 永远不会从脚本中观察到。当作业完成时,脚本被终止。

    关于memory - 如何在 slurm 工作期间监控资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853964/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com