0

我正在尝试收集有关我提交到 Azure Batch 池的云任务和作业的一些统计数据和性能指标。为此,我使用了内置的 TaskExecutionInformation 和 TaskStatistics 类,但我对如何通过这些类计算某些指标感到困惑。具体来说,我想知道我的每个任务执行需要多长时间,所以我检查了 task.statistics 中内置的 wallclocktime,以及 task.ExecutionInformation 中内置的开始和结束时间之间的差异,这两个是不同的。

  1. 任务统计中的挂钟时间是如何计算的?又为什么和通过任务执行信息得到的开始时间和结束时间的时间跨度差不同呢?

  2. 此外,我注意到对于相同的任务处理,任务执行的挂钟时间有很大差异(在我的场景中从 0.6 秒到 21 秒)。什么可能导致如此大的差异?

谢谢!

4

1 回答 1

0
  1. 统计中的挂钟时间是进程结束时间与其创建时间之间的差异。这些时间来自任务命令行指定的创建进程。您可以从 executionInformation 计算的时间差不仅包括流程执行时间。这是从节点获取任务到任务在节点上完成以及批处理服务所需的元数据和状态更新的时间。这个时间可能包括下载资源文件之类的事情。
  2. 由于您将 blob 作为流程本身的一部分下载,因此差异可能来自从 Azure 存储(或您的流程涉及的任何其他噪声源)中检索此数据。如果您能够将 blob 作为资源文件移动,并且您的进程不包含任何其他变量执行部分,您应该会在逐字任务之间看到更一致的挂钟时间(由任务统计挂钟时间报告)。
于 2017-07-07T18:49:43.853 回答