怎么查看slurm job用到了哪些服务器
时间: 2024-10-18 12:09:00 浏览: 33
在Slurm中,查看一个job使用的服务器通常是指查看job在哪些nodes(节点)上运行。你可以使用`squeue`或`sacct`命令来获取这些信息。以下是两个命令的例子:
1. 使用`squeue`:
```
squeue -j job_id
```
这个命令将列出job的状态(`state`)、全格式job ID(`jobspec`),以及job所在的所有node(`nodeLIST`)。`your_username`需要替换为你自己的用户名,`job_id`则是你要查询的具体job编号。
2. 使用`sacct`:
```
sacct -p -P -j job_id -X | grep 'NodeName'
```
`sacct`命令可以提供更详细的资源报告, `-p`表示只显示进程信息,`-P`包含所有提交的作业,`-j`指定job ID,`-X`去除默认排序,然后通过`grep`过滤出NodeName部分。
这两个命令都能帮助你确定一个job的部署位置。如果你想看到整个job的执行历史,包括每个阶段所使用的节点,可能会涉及到追踪job step级别的信息,这时候可能需要结合其他的日志文件查看了。
相关问题
在slurm中,查询job 在哪些CPU上执行任务.
要查询一个job在哪些CPU上执行任务,可以使用 `scontrol` 命令。具体操作步骤如下:
1. 首先通过 `squeue` 命令查看你的job ID,比如你的job ID是 1234:
```
$ squeue -u <username>
```
2. 然后通过 `scontrol` 命令查询job的详细信息,包括任务运行的节点和CPU信息,命令如下:
```
$ scontrol show jobid -dd 1234
```
这个命令会输出job的详细信息,包括任务运行的节点、CPU信息、任务的状态等。其中,CPU信息在 `JobNodes` 字段中。
例如,输出信息中可能包含以下内容:
```
JobId=1234 JobName=myjob
UserId=myusername(1234) GroupId=mygroup(5678)
Priority=100 Nice=0 Account=(null) QOS=normal
JobState=RUNNING Reason=None Dependency=(null)
Requeue=0 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0
RunTime=00:01:23 TimeLimit=00:30:00 TimeMin=N/A
SubmitTime=2021-06-01T10:00:00 EligibleTime=2021-06-01T10:00:00
StartTime=2021-06-01T10:00:00 EndTime=2021-06-01T10:30:00
PreemptTime=None SuspendTime=None SecsPreSuspend=0
LastSchedEval=2021-06-01T10:00:00
Partition=my_partition AllocNode:Sid=compute-0-0:1234
ReqNodeList=(null) ExcNodeList=(null)
NodeList=compute-0-0
BatchHost=compute-0-0
NumNodes=1 NumCPUs=16 NumTasks=1 CPUs/Task=16 ReqB:S:C:T=0:0:*:*
TRES=cpu=16,mem=64000M,node=1,billing=16
Socks/Node=* NtasksPerN:B:S:C=0:0:*:* CoreSpec=*
MinCPUsNode=1 MinMemoryNode=64000M MinTmpDiskNode=0
Features=(null) DelayBoot=00:00:00
OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)
Command=(null)
WorkDir=/home/myusername/myjob
StdErr=/home/myusername/myjob/slurm-%j.err
StdIn=/dev/null
StdOut=/home/myusername/myjob/slurm-%j.out
Power= (null)
CleanUp=1
JobCheckpoint=(null)
OutOfMemory=0
Proctrack=proctrack/cgroup
TRESBillingWeights=CPU=1.000000,Mem=1.000000,Node=1.000000,GRES/Billing=1.000000
Reservation=(null)
Licenses=(null)
Flags= ArrayJobId=1234 ArrayTaskId=1
JobNodeMatchPolicy=EXACTNODE
SelectTypeParameters=(null)
JobAcctGatherType=jobacct_gather/linux
JobAcctGatherFrequency=30 (seconds)
JobAcctGatherDetail=standard
AccountingStorageTRES=cpu=00:01:23,mem=00:00:00,nvidia-smi=00:00:00
JobSubmitCapabilities=(null)
```
其中,`NodeList` 字段表示任务运行的节点,`NumCPUs` 字段表示任务使用的CPU数目。
所以,这个job在 `compute-0-0` 节点上运行,并且使用了16个CPU。
另外,如果你的job正在运行,你也可以使用 `top` 命令查看任务的CPU使用情况。
在slurm中,job 运行完成后,查看在哪些CPU上运行过 .
在 slurm 中,可以使用 `sacct` 命令查看作业的详细信息,包括作业运行的节点、CPU、内存等信息。具体来说,可以使用以下命令查看作业的 CPU 使用情况:
```bash
sacct --format="JobID,JobName,NodeList,CPUTimeRAW,AllocCPUs"
```
其中,`--format` 选项指定了输出格式,`JobID` 表示作业 ID,`JobName` 表示作业名称,`NodeList` 表示作业运行的节点,`CPUTimeRAW` 表示作业运行的 CPU 时间,`AllocCPUs` 表示作业分配的 CPU 核心数量。
如果要查看某个特定作业的 CPU 使用情况,可以在命令中添加 `-j` 选项,后面跟上作业 ID。例如:
```bash
sacct --format="JobID,JobName,NodeList,CPUTimeRAW,AllocCPUs" -j JOBID
```
其中 `JOBID` 是作业的 ID。执行该命令后,会输出作业运行的节点、CPU 使用情况等详细信息。
阅读全文