You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Slurm集群如何获取未使用核心数?是否需编写解析器实现?

计算集群未使用核心数的方法

完全不需要编写复杂的解析器!用slurm自带的工具组合就能直接算出结果,思路很简单:总核心数 - 已运行作业占用的核心数 = 未使用核心数。

具体命令实现

1. 动态获取总核心数 + 计算已用核心数

这条命令会自动从集群获取总核心数,再减去运行中(R状态)作业的核心占用总和:

echo $(( $(sinfo -h -o "%c") - $(squeue -t R -o "%b" | awk '{sum+=$1} END {print sum}') ))

拆解一下每个部分的作用:

  • sinfo -h -o "%c":-h去掉表头,-o "%c"输出集群总核心数
  • squeue -t R -o "%b":-t R只筛选运行状态的作业,-o "%b"仅输出每个作业占用的核心数
  • awk '{sum+=$1} END {print sum}':把所有运行作业的核心数求和
  • echo $(( ... - ... )):用shell算术运算算出差值

2. 固定总核心数的简化版本

既然你明确知道集群总核心数是2,也可以直接写死数值,更简洁:

echo $((2 - $(squeue -t R -o "%b" | awk '{sum+=$1} END {print sum}')))

对应你的示例场景

你的示例里有2个R状态的作业,假设每个作业占用1核心(从NODES=1的默认配置来看通常是这样),那么已用核心数是1+1=2,总核心数2减去2,结果就是0,完全符合预期。

进阶说明

如果你的场景需要考虑更复杂的情况(比如不同分区的核心限制、pending作业预留的核心等),可能需要写个简单的shell脚本细化逻辑,但绝大多数基础场景,上面的命令组合就足够用了。

内容的提问来源于stack exchange,提问作者alper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:28:03