Лучший способ получить статистику работы после завершения работы PBS.

Мне было интересно, есть ли лучший способ получить некоторую статистику работы (например, время процессора, время стены, использование памяти и т. д.) в сценарии задания PBS (после завершения задания). В моей текущей настройке у меня есть строка в конце сценария PBS.

qstat -f "${PBS_JOBID}"

Но проблема в том, что если задание по какой-то причине завершается с ошибкой или уничтожается, эта строка не будет выполнена. Пожалуйста, дайте мне знать другие варианты, которые я могу использовать.

Я очень ценю любую помощь или совет, спасибо!


person arnstrm    schedule 20.12.2014    source источник
comment
Ознакомьтесь со скриптом tracejob, который извлекает большую часть упомянутой вами статистики из журналов.   -  person Dmitri Chubarov    schedule 21.12.2014


Ответы (2)


Вам может пригодиться скрипт tracejob. Он доступен в производных системах пакетного планирования PBS.

tracejob принимает один аргумент, JOB_ID и одну опцию -n days, которая указывает, насколько глубоко следует просматривать файлы журналов для получения соответствующей статистики.

Примечание о раздельной отправке и серверах

Обратите внимание, что tracejob работает только в том случае, если журналы доступны на хосте, где он вызывается. В некоторых установках сервер PBS работает на одном хосте, а отправка заданий выполняется на другом, а файлы журналов хранятся в файловой системе, локальной по отношению к серверу PBS. В этом случае tracejob работать не будет.

Пример

$ qstat -f 10082
qstat: Unknown Job Id 10082.

qstat не работает, так как задание завершено, а tracejob работает

$ tracejob -n 10 10082 2>/dev/null

Job: 10082.pbs.cl.localnet

12/14/2014 03:33:10  S    Job deleted at request of
                          USERNAME
12/14/2014 03:33:10  S    Job sent signal SIGTERM on delete
12/14/2014 03:33:10  S    Not sending email: User does not want mail of this
                          type.
12/14/2014 03:33:10  S    Exit_status=271 resources_used.cput=369:59:52
                          resources_used.mem=609672kb
                          resources_used.vmem=674112kb
                          resources_used.walltime=167:08:56
12/14/2014 03:33:10  A    requestor=USERNAME
12/14/2014 03:33:10  A    user=USERNAME group=users jobname=MYJOB
                          queue=simple ctime=1417901048 qtime=1417901048
                          etime=1417901048 start=1417901048
                          owner=USERNAME exec_host=HOST/CPU
                          Resource_List.walltime=90000:00:00 session=15324
                          end=1418502790 Exit_status=271
                          resources_used.cput=369:59:52
                          resources_used.mem=609672kb
                          resources_used.vmem=674112kb
                          resources_used.walltime=167:08:56
12/14/2014 03:43:11  S    dequeuing from simple, state COMPLETE

Вы можете перенаправить stderr на /dev/null при выполнении tracejob, чтобы избежать нескольких сообщений формы

/var/lib/torque/sched_logs/DATE: No matching job records located

В приведенных выше журналах информация, не относящаяся к вопросу, была заменена словами с заглавной буквы.

person Dmitri Chubarov    schedule 21.12.2014

Лучший способ сделать это и разместить его в задании — добавить его через сценарий эпилога. Полную информацию по настройке можно найти здесь. информация об использовании является аргументом 7 сценария эпилога, и если вы записываете в стандартный вывод, она будет добавлена ​​к файлу stdout для вашей работы.

person dbeer    schedule 05.01.2015