粘监视工具很多

概述

玛蒂尔达的粘资源管理器很多带有几个内置的工具,可以用于监测工作和节点在集群上的状态。这些命令可以相当复杂(但有用的)格式化选项,所以只有一个简短的(但希望有用)下面是概述。引用本文的末尾提供了对用户希望扩展提供的信息。

的目标监测和几个例子

而生产人员监控功能的玛蒂尔达,遵从性和资源的可用性,用户可以非常有用的自我监控的工作在集群上提高工作效率。一些自我监控的好处包括:

  • 确定你的工作资源的多少实际上是使用:举个例子,如果你猜你可能需要300 gb的内存(RAM)但实际上工作只需要50 gb,指定300 gb不必要意味着你的工作是局限于一个4“bigmem”节点。因此,因为“bigmem”节点是在高需求(数量不多),你的工作可能会花更多的时间在排队状态比实际上是必要的。

  • 评估工作经历:可以列出所有的工作你已经运行在一个给定的时间段。此信息可用于确定时间花在各种任务,估计未来工作的资源需求,或确定意外的工作结束的状态(例如,它失败了,完成,什么时间等等?)。

  • 评估当前可用资源:当规划你的工作,它可能有助于评估目前可用的资源在集群上。集群“入住率”变化极大,即使在很短的时间。例如,它并不少见的集群从“占领”只有5 - 10%,远远超过80%,一个星期左右后,回落到5 - 10%。

  • 评估工作表现和正确性:假设你相信你已经正确地指定40 cpu工作——因此相信你会对自己整个节点——才发现另一个用户有一份工作在相同的节点上运行。更糟糕的是,这些额外的工作是现在工作放缓。这通常是由用户指定参数错误如“ntasks”的方式并不适合实际使用的线程数量(例如ntasks = 1,但你使用mpirun np 40)。在这些情况下,粘分配你的工作很多节点和储备一(1)cpu核心,但你实际上是使用40。粘可能会分配另一个节点的工作,因为很多会计,可用的节点有39个cpu核。节点是现在“过度”,这减慢你的工作。通过使用监视工具,您可以评估你的工作是否正确安装并在必要时进行更改之前,这类问题发生。

有用的粘监控很多命令

sstat

的粘命令很多sstat获取有用的信息在你的当前运行工作。简单地运行“sstat < jobid >”将产生许多指标,但是输出可以有点乱。你可以控制sstat输出的格式使用说明符”——格式= "国旗。例如:

sstat < jobid >——格式= jobid MaxRSS, AveCPU NTasks,节点列表,TRESUsageInTot % 40

…将提供的最大内存使用量(MaxRSS),平均CPU利用率(#核*运行时),任务的数量,一个节点列表,到目前为止总共和资源利用率。上面的说明符使用“% 40”与“TRESUsageInTot”提供了控制输出的格式的字段宽度。看到所有可用的格式说明符选项,您可以运行:

sstat——helpformatAveCPU AveCPUFreq AveDiskRead AveDiskWriteAvePages断言AveVMSize ConsumedEnergyConsumedEnergyRaw JobID MaxDiskRead MaxDiskReadNodeMaxDiskReadTask MaxDiskWrite MaxDiskWriteNode MaxDiskWriteTaskMaxPages MaxPagesNode MaxPagesTask MaxRSSMaxRSSNode MaxRSSTask MaxVMSize MaxVMSizeNodeMaxVMSizeTask MinCPU MinCPUNode MinCPUTask节点列表NTasks pid ReqCPUFreqReqCPUFreqMin ReqCPUFreqMax ReqCPUFreqGov TRESUsageInAveTRESUsageInMax TRESUsageInMaxNode TRESUsageInMaxTask TRESUsageInMinTRESUsageInMinNode TRESUsageInMinTask TRESUsageInTot TRESUsageOutAveTRESUsageOutMax TRESUsageOutMaxNode TRESUsageOutMaxTask TRESUsageOutMinTRESUsageOutMinNode TRESUsageOutMinTask TRESUsageOutTot

有关sstat的更多信息,请参考粘的文档很多

squeue

虽然squeue命令是众所周知的最粘的用户很多,请注意,可以获得比单独运行默认squeue命令的更多信息。例如,运行:

squeue——格式= % 10我% 15 u % 15 j % 5 t % 15 m % 15 l % 8 c % 30 n % 10 d %

…工作将产生格式化输出包含id、用户名、工作名称、时间,walltime, cpu的数量,一个节点列表,并利用节点的数目。例如:

JOBID用户名圣TIME_LIMIT cpu时间节点列表节点76856年someuser is_lslf R 1:19:55 20:10:00 8 hpc-throughput-p07 176855年someuser is_rsf R 1:30:55 20:10:00 8 hpc-throughput-p06 176854年someuser is_rlf R 1:41:25 20:10:00 8 hpc-throughput-p05 176850年otheruser dfly_p18 R 2:14:03 2-10:10:00 32 hpc-bigmem-p02 176833年分类列出mohiL-3PR R 15:03:44 6-16:00:00 1 hpc-throughput-p01 176832年分类列出mohiL-4PR R 15:04:51 6-16:00:00 1 hpc-bigmem-p01 1

“% #”说明符控制字段的宽度,和字母后缀(如。“% 10我”)引用格式字段(JobID宽度= 10)。虽然格式说明符squeue有点模糊,如果你找到一个特别有用的格式,您可以定义格式使用当你登录到玛蒂尔达通过设置在你的“SQUEUE_FORMAT的价值。bashrc”(文件。例如:

出口SQUEUE_FORMAT = " % 10我% 15 u % 15 j % 5 t % 15 m % 15 l % 8 c % 30 n % 10 d %”

参考SLURMsqueue文档为更多的信息。

sacct

sacct命令是用于评估运行的状态或完成工作。在最简单的形式中,你只需要使用“sacct - j < jobid >”对于任何运行或完成/失败的工作。“squeue”和“sstat”, sacct命令可以使用修饰符/格式说明符来获得额外的(或产品)的信息。例如:

sacct - j = JobID % 12 999888——格式,状态,用户帐户% 30,时限,ReqTRES % 45,分区% 15JobID状态用户帐户时限ReqTRES分区- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -999888失败someuser + myjobName-here 20:10:00账单= 8,cpu = 8 = 1 general-long mem = 772512米,节点999888年。批myjobName-here失败999888年。走读生myjobName-here完成

这表明工作了多久,以及可追踪资源(cpu、gpu账单等),和分区。请注意,对于这个工作有一个主要的工作号码,以及变化的”。批处理”和“。走读生”后缀。这些粘每工作很多创建的“工作步骤”(MPI工作可能更多的步骤,一个用于每个任务)。前者指定这是一个“批处理”工作和跟踪内部使用的批处理作业的资源。后者占粘资源规范外部的很多工作。

有许多可能的格式说明符,可以用于sacct命令。看到一个列表,使用:

sacct——helpformat账户AdminComment AllocCPUS AllocNodesAllocTRES AssocID AveCPU AveCPUFreqAveDiskRead AveDiskWrite AvePages断言AveVMSize BlockID集群评论限制容器ConsumedEnergy ConsumedEnergyRawCPUTime CPUTimeRAW DBIndex DerivedExitCode经过ElapsedRaw合格结束ExitCode旗帜GID集团JobID JobIDRaw JobName布局MaxDiskRead MaxDiskReadNode MaxDiskReadTask MaxDiskWriteMaxDiskWriteNode MaxDiskWriteTask MaxPages MaxPagesNodeMaxPagesTask MaxRSS MaxRSSNode MaxRSSTaskMaxVMSize MaxVMSizeNode MaxVMSizeTask McsLabelMinCPU MinCPUNode MinCPUTask NCPUSNNodes节点列表NTasks优先分区QOS QOSRAW原因ReqCPUFreq ReqCPUFreqMin ReqCPUFreqMax ReqCPUFreqGovReqCPUS ReqMem ReqNodes ReqTRES预订保留ReservationId ResvCPUResvCPURAW开始提交状态SubmitLine暂停SystemCPU SystemComment时限TimelimitRaw TotalCPU TRESUsageInAveTRESUsageInMax TRESUsageInMaxNode TRESUsageInMaxTask TRESUsageInMinTRESUsageInMinNode TRESUsageInMinTask TRESUsageInTot TRESUsageOutAveTRESUsageOutMax TRESUsageOutMaxNode TRESUsageOutMaxTask TRESUsageOutMinTRESUsageOutMinNode TRESUsageOutMinTask TRESUsageOutTot UID用户UserCPU WCKey WCKeyIDWorkDir

更多的信息,参阅粘。很多文档sacct

scontrol

scontrol命令有助于评估节点的详细信息或运行工作。看到一个特定的节点的状态(如hpc-compute-p01):

scontrol显示节点hpc-compute-p01节点名= hpc-compute-p01拱= x86_64 CoresPerSocket = 20CPUAlloc = 32 CPUTot = 40 CPULoad = 32.01AvailableFeatures =当地ActiveFeatures =当地格蕾丝=(空)NodeAddr = hpc-compute-p01 NodeHostName = = 21.08.8-2 hpc-compute-p01版本操作系统Linux 4.18.0-372.19.1.el8_6 =。x86_64 # 1 SMP星期一2022年7月18日美国11:14:02RealMemory = 191895 AllocMem = 0释放内存= 185655套接字= 2 = 1体重状态=混合ThreadsPerCore = 1 TmpDisk = 0 = 100 = N / A MCS_label = N /所有者分区=普遍的空头,general-long rusakovBootTime = 2023 - 03 - 09 - t00:18:27 SlurmdStartTime = 2023 - 03 - 09 - t00:20:33LastBusyTime = 2023 - 03 - 20 - t05:06:59CfgTRES = cpu = 40, mem = 191895米,计费= 40AllocTRES = cpu = 32CapWatts = n / aCurrentWatts = 0 AveWatts = 0ExtSensorsJoules = n / s ExtSensorsWatts = 0 ExtSensorsTemp = n / s

在这里,我们可以看到许多核心节点(40);有多少核心分配(32);系统内存的详细信息;和节点状态(在这种情况下,混合意味着有工作分配但并非所有资源分配)。

我们还可以看到工作细节使用:

scontrol id 999888显示的工作JobName = slurm_omp.sh JobId = 999888用户id = someuser (123456) GroupId =教师(1002)MCS_label = N / A优先级= 1好= 0 = rusakov-research-group QOS =正常JobState =运行原因=没有依赖=(空)重启Requeue = 1 = 0 BatchFlag = 1 = 0 ExitCode = 0时重新引导运行时= 20:37:19期限= 2-00:00:00 TimeMin = N / ASubmitTime = 2023 - 03 - 21 - t14:11:51 EligibleTime = 2023 - 03 - 21 - t14:11:512023 - 03 - 21 - t14:11:51 AccrueTime =开始时间= 2023 - 03 - 21 - t14:11:51 EndTime = 2023 - 03 - 23 - t14:11:52期限= N / ASuspendTime =没有SecsPreSuspend = 0 LastSchedEval = 2023 - 03 - 21 - t14:11:51调度器=主要分区= general-long AllocNode: Sid = hpc-login-p01:1446834ReqNodeList = (null) ExcNodeList =(空)节点列表= hpc-compute-p到三十五,hpc-throughput-p01BatchHost = hpc-compute-p33NumNodes = 4 NumCPUs = 100 NumTasks = 100 cpu /任务= 1 ReqB: S: C: T = 0时:*:1非常= cpu = 100、节点= 4 = 100袜子/节点= * NtasksPerN: B: S: C = 0时:*:* CoreSpec = *MinCPUsNode MinTmpDiskNode = 0 = 1 MinMemoryNode = 0= (null) DelayBoot =就是特性超额认购=好连续= 0许可证= (null)网络=(空)命令= /项目/ some-research-group / AtX3 / AtBr3_profile / CCSD_T_TZ_profile / LRC-wPBEh-D4_SO_profile / slurm_omp.shWorkDir = /项目/ some-research-group / AtX3 AtBr3_profile / CCSD_T_TZ_profile / LRC-wPBEh-D4_SO_profileStdErr = /项目/ some-research-group / AtX3 AtBr3_profile / CCSD_T_TZ_profile / LRC-wPBEh-D4_SO_profile /粘- 76813. -很多StdIn = / dev / nullStdOut = /项目/ some-research-group / AtX3 AtBr3_profile / CCSD_T_TZ_profile / LRC-wPBEh-D4_SO_profile /粘- 76813. -很多功率=

结果在核心,包含大量的信息记忆、节点被利用,和其他详细的工作信息。

有关更多信息,请参阅粘。很多文档scontrol

seff

的SLURMseff命令可以用来评估工作效率。请注意,seff结果运行工作可能是错误或误导。但是,如果您运行seff id已经完成的工作,它可能是有用的在评估完成的工作性能。例如:

seff 999888ID: 999888年集群:slurm用户/组:someuser /学生状态:失败(退出代码134)节点:1每个节点的核心:8CPU利用率:00:05:15CPU效率:12.15%的00:43:12 core-walltime工作所:00:05:24内存使用:398.96 MB内存效率:0.00%的0.00 MB

在上面的示例中,失败的工作。您可以使用seff会同“- d”(调试)为额外的信息:

seff - d 999888粘数据:很多JobID ArrayJobID用户组状态Clustername Ncpus Nnodes Ntasks Reqmem PerNode Cput Walltime Mem ExitStatus999888 someuser粘数据:很多学生没有粘8 1 1 0 1 315 324 408540 134很多ID: 999888年集群:slurm用户/组:someuser /学生状态:失败(退出代码134)节点:1每个节点的核心:8CPU利用率:00:05:15CPU效率:12.15%的00:43:12 core-walltime工作所:00:05:24内存使用:398.96 MB内存效率:0.00%的0.00 MB

Seff是一个贡献者脚本分发与粘。很多有关更多信息,请参考contrib回购seff命令。

结合粘命令很多

而粘监控命令非常有用,很多时,他们可以更加强大与其他资源和技术一起使用。确保付款的文件HPC Powertools在节点监测为更多的信息。

更多信息和引用


CategoryHPC