2

我无法理解下面的时间使用报告:

1) 为什么作业步骤 1 和 2 的时间不加到批处理线上?

2)每列之间的关系是什么,尤其是对于TotalCPUCPUTime

3) 对于工作的时间使用情况,哪一项最好报告?

$ sacct -o JOBID,AllocCPUs,AveCPU,reqcpus,systemcpu,usercpu,tot
alcpu,cputime,cputimeraw -j 649176
       JobID  AllocCPUS     AveCPU  ReqCPUS  SystemCPU    UserCPU   TotalCPU    CPUTime CPUTimeRAW 
------------ ---------- ---------- -------- ---------- ---------- ---------- ---------- ---------- 
649176               24                  24  00:02.047  01:06.896  01:08.943   00:23:36       1416 
649176.batch         24   00:00:00       24  00:00.027  00:00.014  00:00.041   00:23:36       1416 
649176.0             24   00:00:00       24  00:00.813  00:24.886  00:25.699   00:08:48        528 
649176.1             24   00:00:18       24  00:01.207  00:41.996  00:43.203   00:14:24        864 
4

1 回答 1

3

1) 为什么作业步骤 1 和 2 的时间不加到批处理线上?

.batchSystemCPU、UserCPU 和 TotalCPU报告的时间是运行批处理文件中的命令所花费的时间,不包括生成的进程 [1]。CPUTime 和 CPUTimeRAW 确实计算生成的进程,因此它们加起来对应于作业步骤的行。

2)每一列之间有什么关系,尤其是TotalCPU和CPUTime?

TotalCPU 是每个 CPU 的 UserCPU 和 SystemCPU 的总和,而 CPUTime 是经过的时间乘以请求的 CPU 数量。两者之间的区别在于 CPU 什么都不做(无论是在用户模式还是在内核模式)所花费的时间,大部分时间都在等待 I/O [2]

3) 对于工作的时间使用情况,哪一项最好报告?

这取决于你想展示什么。Elapsed(您没有在此处显示)给出了“解决时间”。CPUTimeRAW 是经常被计入和支付的。CPUTime 和 TotalCPU 之间的差异提供了有关 I/O 开销的信息。

[1] 来自手册页

SystemCPU 作业或作业步骤使用的系统 CPU 时间量。输出的格式与 Elapsed 字段的格式相同。

注意:SystemCPU 提供了对任务父进程的度量,不包括子进程的 CPU 时间。

[2] https://en.wikipedia.org/wiki/CPU_time

于 2015-07-20T11:32:12.057 回答