我认为这是一个相当微不足道的问题,但尽管如此,我仍然在寻找(我猜是sacct)命令,该命令将显示slurm作业ID所使用的CPU时间和内存。
发布于 2014-06-07 01:40:33
如果您的任务已经完成,那么sacct
命令就是您要查找的内容。否则,请查看sstat
。对于sacct
,--format开关是另一个关键元素。如果您运行此命令:
sacct -e
您将获得可用于--format开关的不同字段的打印输出。手册页的Job Account Fields部分介绍了每个字段的详细信息。对于CPU时间和内存,CPUTime和MaxRSS可能就是您想要的。如果您想要以秒为单位的数字,也可以使用cputimeraw,而不是通常的Slurm时间格式。
sacct --format="CPUTime,MaxRSS"
发布于 2014-07-29 03:24:54
sacct
确实是用于完成作业的命令。对于正在运行的作业,可以查看sstat
命令。
发布于 2020-03-27 17:11:39
虽然已经有了很棒的解决方案,但我分享了另一种观点。
该方法可以对多个节点进行实时监控。
我们可以编写一个脚本monitor.sh
来获取统计数据(例如内存),然后将其记录到文件中。
#! /bin/sh
if [ -f "./free.log_"`hostname` ];then
echo "file existed , now deleting it !"
rm ./free.log_`hostname`
fi
echo "start recording!"
while true
do
echo "******["`date +%Y-%m-%d_%H:%M:%S`"]******" >> free.log_`hostname`
free -s 1 -c 2 -h|sed -n 1,2p >> free.log_`hostname`
done
然后编写您的作业脚本sbatch_input.sh
,它可以被sbatch调用。
#! /bin/sh
#SBATCH -N 2
#SBATCH -p cnall
srun hostname
srun ./monitor.sh
调用脚本
sbatch ./sbatch_input.sh
我们可以看到一些日志生成。
https://stackoverflow.com/questions/24020420
复制相似问题