Статистика задач и заданий — WallClockTime и ExecutionInformation

Я пытаюсь собрать некоторые статистические данные и показатели производительности для облачных задач и заданий, которые я отправляю в пул пакетной службы Azure. Для этого я использую встроенные классы TaskExecutionInformation и TaskStatisitics, но меня смущает, как с помощью этих классов рассчитываются некоторые показатели. В частности, я хочу знать, сколько времени занимает выполнение каждой из моих задач, поэтому я проверил настенные часы, встроенные в task.statistics, и разницу между временем начала и окончания, встроенными в task.ExecutionInformation, и эти два были разными.

  1. Как рассчитывается время настенных часов в статистике задач? И почему она отличается от разницы во времени между временем начала и окончания, полученной с помощью информации о выполнении задачи?

  2. Кроме того, я заметил большой разброс времени выполнения задачи настенными часами (от 0,6 до 21 секунды в моем сценарии) для той же обработки задачи. Что может быть причиной такой большой дисперсии?

Спасибо!


person J.B    schedule 07.07.2017    source источник
comment
Есть ли у вас какие-либо файлы ресурсов, привязанные к задачам? Насколько велика наблюдаемая вами дельта?   -  person fpark    schedule 07.07.2017
comment
@fpark У меня нет файлов ресурсов, привязанных к задачам, но в командной строке, которую я запускаю на вычислительных узлах, я передаю большой двоичный объект Uri в качестве аргумента (моя задача для тестирования просто извлекает этот большой двоичный объект и сохраняет его на локальном компьютере). диск вычислительного узла). Для дельты также была большая дисперсия, но она сильно отличалась от времени настенных часов. Например, для настенного времени в 1 секунду у меня есть дельта 8-9 секунд.   -  person J.B    schedule 07.07.2017
comment
Для № 2 под временем настенных часов вы имеете в виду время выполнения информации или время настенных часов из статистики?   -  person fpark    schedule 07.07.2017
comment
Я имею в виду время на настенных часах из статистики. То, что я получаю из информации о выполнении, - это время начала и время окончания выполнения задачи.   -  person J.B    schedule 07.07.2017


Ответы (1)


  1. Время Wallclock из статистики — это разница между временем окончания процесса и временем его создания. Это время из процесса, созданного в соответствии с командной строкой задачи. Разница во времени, которую можно вычислить на основе информации о выполнении, включает в себя не только время выполнения процесса. Это время с момента получения задачи узлом до завершения задачи на узле с метаданными и обновлениями состояния, которые требуются пакетной службе. Это время может включать в себя такие вещи, как загрузка файлов ресурсов.
  2. Поскольку вы загружаете большой двоичный объект как часть своего процесса, расхождения могут возникать из-за извлечения этих данных из службы хранилища Azure (или из любого другого источника шума, связанного с вашим процессом). Если вы можете переместить большой двоичный объект как файл ресурсов, а ваш процесс не содержит каких-либо других переменных частей выполнения, вы должны увидеть более согласованные значения времени настенных часов между дословными задачами (о чем сообщает время настенных часов статистики задачи).
person fpark    schedule 07.07.2017
comment
Спасибо за Ваш ответ. Это очень полезно! У меня есть дополнительная заметка для 2. Итак, я проверил сквозную задержку в журналах для хранилища BLOB-объектов, показав время, необходимое для чтения запроса хранилища BLOB-объектов и ответа на него, и на этот раз то же самое с разницей в миллисекундах для всех задач, поэтому из этих журналов не видно, что хранилище Azure может вызывать расхождение во времени настенных часов. - person J.B; 08.07.2017
comment
Я попробовал то, что вы предложили в № 2, переместив свои большие двоичные объекты в качестве файлов ресурсов, а затем обработав их. Хотя дисперсия была не такой большой, как раньше (от 0,6 до 21 с), она по-прежнему была относительно значительной, варьируясь от 0 до 1,09 с, хотя я ожидал разницу в 0,2 с между моими разными запусками/задачами. Учитывая, что у меня нет переменных частей выполнения, в чем может быть проблема? Или это нормально для пакетной службы Azure? - person J.B; 11.07.2017