9.9. Атрибуты заданий
В начало страницы
Следующие страницы являются копиями различных PBS man pages, представляющих
специальный интерес для администратора. Полное множество man pages
включено в поставку и может быть найдено в ERS.
В начало страницы
NAME
pbs_server - запустить пакетный сервер pbs
SYNOPSIS (краткое описание)
pbs_server [-a active] [-d config_path] [-p port]
[-A acctfile] [-L logfile] [-M mom_port] [-R mom-
RPP_port] [-S scheduler_port] [-t type]
DESCRIPTION
Команда pbs_server запускает в действие пакетный сервер на локальном
хосте. Обычно эта команда находится в локальном загрузочном файле, таком
как /etc/rc.local. Если пакетный сервер уже работает, он закончится с
выдачей ошибки. Чтобы командой pbs_server сервер не могли воспользоваться
кто угодно, она выполняется только для пользователя с реальным и
эффективным uid равным нулю.
Сервер записывает в регистрационный файл диагностику при каждой ошибке.
Такие файлы ведутся в каталоге server_logs directory внизу начального
каталога сервера. Если регистрационный файл не может быть открыт,
диагностические сообщения выдаются на системную консоль.
OPTIONS
-a active Показывает, работает ли планировщик. Устанавливает атрибут
сервера. Если аргумент параметра есть "true" ("True",
"t", "T" или "1"), то сервер активен и вызывает
планировщика заданий PBS. Если аргумент есть "false"
("False", "f", "F" или "0), сервер "на холостом ходу",
планировщик не вызывается и задания не выполняются.
Если этот параметр не указан, сервер сохраняет прежнее
значение атрибута scheduling.
-d config_path Указывает путь к каталогу, содержащему конфигурационные
файлы сервера, PBS_HOME. Хост может иметь несколько
серверов. Каждый сервер должен иметь
отдельный конфигурационный каталог. По умолчанию
конфигурационный каталог задается переменной
$PBS_SERVER_HOME, обычно имеющей значение /usr/spool/PBS.
-p port Указывает номер порта, через который сервер получает
пакетные запросы. Если много серверов работают на одном
хосте, каждый должен иметь собственный номер порта.
Эта опция нужна при нескольких пакетных системах на одном
хосте.
-A acctfile Указывает абсолютное имя пути к файлу, используемому в
качестве учетного. Если не указан, файл именуется по
конкретной дате в каталоге PBS_HOME/server_priv/accounting
-L logfile Содержит абсолютное имя пути к файлу, используемому в
качестве регистрационного. Если имя не указано, этот файл
именуется по текущей дате в каталоге PBS_HOME/server_logs,
см. параметр -d option.
-M mom_port Указывает имя хоста и/или номер порта, по которому
сервер должен связываться с исполнителем задания, MO'ом.
Аргумент параметра, mom_conn, имеет или форму:
host_name, [:]port_number, или
host_name:port_number. Если host_name не указано,
подразумевается локальный хост. Если не указан port_number,
подразумевается порт по умолчанию. См. параметр -M для
pbs_mom(8).
-R mom_RPPport Указывает номер порта, на котором сервер должен запрашивать
статус up/down Mom'а. См. параметр -R для pbs_mom(8).
-S scheduler_port
Указывает номер порта, с которым Сервер должен связываться
при контактах с Планировщиком. Аргумент параметра,
scheduler_conn, имеет тот же синтаксис, как и в -M.
-t type Указывает влияние на исполняемые задания закрытия сервера.
Если исполняемое задание нельзя перезапустить или
перестартовать с контрольной точки, задание снимается .
Если задание можно перезапустить или перестартовать, то
предпринимаются описываемые ниже действия. Если аргумент
type есть:
hot Все задания заново устанавливаются в очередь,
за исключением неперезапускаемых
заданий, которые исполнялись. Каждое
перезапускаемое задание, которое исполнялось при
остановке Сервера, будет немедленно запущено.
Это возвращает сервер в то же состояние, в котором
он остановился. После перезапуска таких заданий
продолжается обычное планирование оставшихся в
очереди заданий.
Если какое-то задания нельзя немедленно
перезапустить из-за отсутствия ресурсов, таких как
узел в состоянии down, сервер периодически будет
стараться сделать это в течение 5 минут. После
этого периода сервер возвратится в нормальное
состояние, как при теплом старте, и больше не будет
пытаться перезапустить оставшиеся задания, которые
исполнялись до его остановки.
warm Все перезапускаемые задания, которые исполнялись в
в момент остановки, снова ставятся в очередь.
Все другие задания остаются. Производится отбор
новых заданий для исполнения. Warm есть значение
по умолчанию, если -t не указано.
cold Все задания выбрасываются. Но предварительно
необходимо подтвердить такое действие.
create Сервер отменит все существующие конфигурационные
файлы, очереди и задания и инициализирует
конфигурационные файлы со значениями по умолчанию.
Сервер переходит на холостой ход.
FILES
$PBS_SERVER_HOME/server_priv
Каталог по умолчанию для конфигурационных файлов,
обычно /usr/spool/pbs/server_priv
$PBS_SERVER_HOME/server_logs
каталог для файлов, записываемых сервером .
Обработка сигналов (Signal Handling)
При получении следующих ниже сигналов сервер предпринимает действия:
SIGHUP Текущий журнал сервера и учетный журнал закрываются и вновь
открываются. Старые журналы переименовываются и новые ведутся с
момента сигнала.
SIGINT Производится правильное закрытие pbs_server, аналогично
действию "qterm".
SIGTERM
Производится правильное закрытие pbs_server, аналогично действию
"qterm".
SIGSHUTDN
На системах (Unicos), где SIGSHUTDN определен, он также производит
правильное закрытие сервера.
SIGPIPE, SIGUSR1, SIGUSR2
Эти сигналы игнорируются.
Все другие сигналы действуют по правилам умолчания установки.
EXIT STATUS
Если команда серверу начать пакетную операцию не проходит, сервер
заканчивает работу с кодом больше нуля.
СМ. ТАКЖЕ
qsub (1B), pbs_connect(3B), pbs_mom(8B),
pbs_sched_basl(8B), pbs_sched_tcl(8B), pbsnodes(8B),
qdisable(8B), qenable(8B), qmgr(8B), qrun(8B),
qstart(8B), qstop(8B), qterm(8B) и PBS External
Reference Specification.
В начало страницы
ИМЯ
pbs_mom - запустить исполнительный мини-сервер PBS batch
КРАТКОЕ ОПИСАНИЕ
pbs_mom [-C chkdirectory] [-c config] [-d directory]
[-L logfile] [-M MOMport] [-R RPPport] [-p|-r] [-x]
ОПИСАНИЕ
Команда pbs_mom запускает в действие пакетный машинно-ориентированный
мини-сервер, MOM, на локальном хосте. Обычно эта команда находится в
локальном корневом (boot) файле /etc/rc.local. Для предохранения
этой команды от неквалифицированного употребления она подчиняется только
пользователям с реальным и эффективным uid равным нулю.
Одна из функций pbs_mom состоит в передаче задания на исполнение по
указанию сервера, установлении лимитов на используемые ресурсы, слежении
за заданием и извещении сервера об его окончании. Если имеются сценарии
пролога и эпилога, pbs_mom исполняет сценарий пролога перед исполнением
задания и сценарий пролога после его завершения. Следующая функция
pbs_mom состоит в исполнении запросов на ресурсы. Это делалось посредством
отдельного процесса в прежних версиях PBS, но теперь скомбинировано в
один процесс. Функция мониторинга ресурсов обеспечивается в основном
для планировщика PBS. Она дает информацию об исполняющихся заданиях,
доступной памяти и т.д. Следующая функция pbs_mom состоит в
удовлетворении запросов на управление задачами. Это связано с
коммуникациями с исполняемыми задачами через разъемы tcp socket и с
другими MOM'ами в пределах задания.
Pbs_mom записывает диагностические сообщения в регистрационный файл
при каждой ошибке. Такие файлы ведутся в каталоге mom_logs внизу
начального каталога сервера. Если регистрационный файл нельзя открыть,
диагностики выдаются на системную консоль.
ПАРАМЕТРЫ
-C chkdirectory Указывает путь к каталогу для файлов, используемых для
поддержки проверок. [Временно это действует только на
системах Cray.] По умолчанию это каталог
PBS_HOME/spool/checkpoint, см. параметр -d.
Каталог, указанный с параметром -C, должен принадлежать
корню и быть доступным (rwx) только из корня, чтобы
обеспечить безопасность для файлов контрольных точек.
-c config Указывает альтернативный конфигурационный файл, см.
описание ниже. Если это относительное имя файла, оно
относится к PBS_HOME/mom_priv, см. параметр -d. Если
указанный файл нельзя открыть, pbs_mom абортируется. Если
параметр -c отсутствует, pbs_mom будет пытаться открыть
конфигурационный файл по умолчанию, "config", в
PBS_HOME/mom_priv. Если этого нет, pbs_mom зарегистрирует
этот факт и продолжит работу.
-d directory Указывает путь к каталогу PBS_HOME, месту рабочитх файлов
сервера. Этот параметр обычно используется вместе с -M
при отладке MOM. Каталог по умолчанию, задаваемый по
умолчан в $PBS_SERVER_HOME, есть обычно /usr/spool/PBS.
-L logfile Указывает имя пути, используемого для регистрационного
файла. Если не указано, MOM откроет файл, названный по
текущей дате в каталоге PBS_HOME/mom_logs, см.
параметр -d.
-M port Указывает номер порта, по которому мини-сервер (MOM)
будет прислушиваться к пакетным запросам.
-R port Указывает номер порта, по которому мини-сервер (MOM) будет
получать запросы на ресурсы, запросы менеджера задач и
обмениваться сообщениями с другими MOM. Будут
использоваться как порты UDP, так и TCP с этим номером.
-p Определяет действия с заданиями, которые исполнялись в
момент остановки мини-сервера. При каждом рестарте MOM
мини-сервер не будет родителем никакого исполняемого
задания, MOM теряет контроль над своими отпрысками
(обычная ситуация для родителей!) С параметром -p Mom
разрешает заданиям продолжать исполнение и управляет ими
косвенно, через опрос. Параметры -p и -r взаимно
исключают друг друга.
-r Определяет действие с заданиями, которые исполнялись в
момент остановки мини-сервера. При параметре -r MOM
все процессы, принадлежащие заданиям,
отмечает как прерванные (terminated) и извещает
об этом пакетный сервер-владельца заданий. Параметр -r
есть взаимно-исключаемый относительно параметра -p.
Нормально мини-сервер запускается из системного
загрузочного (boot) файла без параметров -p или -r.
Мини-сервер не делает попыток сигнализировать об
исполняемых заданиях предыдущего сеанса, на котором он был
прерван. Предполагается, что при перезагрузке все
процессы были убиты.
Если вслед за перезагрузкой используется параметр -r,
идентификатор процесса (pids) может быть использован
вновь и MOM может убить процесс, не относящийся к
пакетному сеансу.
-a alarm Используется для указания таймаут в секундах по сигналу
alarm для вычисления ресурса. Каждый раз при обработке
запроса на ресурс устанавливается alarm на указанное
количество времени. Если запрос не обработан за указанное
время, порождается новый сигнал alarm. Время по умолчанию
есть 5 секунд
-x Выключает проверку на привилегированный порт для связи по
управлению ресурсами. Это используется главным образом
для тестов, поскольку привилегированный порт есть
единственный механизм, используемый для запрещения связи
рядовому пользователю.
КОНФИГУРАЦИОННЫЙ ФАЙЛ
Конфигурационный файл может быть указан в командной строке программы
start с флажком -c flag. Назначение этого файла - выдавать разного
рода информацию для pbs_mom во время исполнения: имена статических ресурсов
и значений, внешних ресурсов при условии что программа должна выполняться
по запросу через оболочку (via shell escape), и значения для передачи
внутренним функциям установки при инициализации (и реинициализации).
Единицы каждого типа располагаются в одной строке, компоненты разделяются
белыми пробелами. Если строка начинается со знака #, она считается
комментарием.
Статические ресурсы
Для имен статических ресурсов и значений конфигурационный файл
имеет список пар имя/значение,
по одной паре в строке, компоненты разделяются белыми пробелами.
Примерами имен и значений статических ресурсов могут быть имена
лентопротяжных устройств разных типов, таких как
tape3480 4
tape3420 2
tapedat 1
tape8mm 1
Команды оболочки
Если первый символ значения есть восклицательный знак (!), то
весь остаток строки сохраняется для исполнения службами
system(3) standard library routine.
Выход из оболочки (Shell escape) представляет средство управления
ресурсами, выдающими
различную информацию планировщику. Замена параметров происходит
так, что значение любого описателя, посылаемого с запросом, как
объясняется ниже, заменяет обозначение со знаком процента (%)
с последующим именем описателя. Например, вот строка
конфигурационного файла, которая относится к ресурсу с именем
"escape":
escape !echo %xxx %yyy
Если запрос для "escape" послан без описателя, выполняемая команда
будет "echo %xxx %yyy". Если послан один описатель
"escape[xxx=hi there]", выполняемая команда будет
"echo hi there %yyy". Если посланы два описателя
"escape[xxx=hi][yyy=there]", выполняемая команда будет
"echo hi there". Если описатель в командной строке послан без
соответствующих файлу обозначений:
"escape[zzz=snafu]", то выдается ошибка.
Инициализирующее значение
Директива инициализирующего значения имеет имя, начинающееся со
знака доллара ($), известное для MOM по внутренней таблице.
В этой таблице сейчас имеются следующие входы:
clienthost
побуждает добавить имя хоста к списку хостов, которым
разрешается связь с MOM, когда они используют привилегированный
порт. Например, вот две строки конфигурационного файла,
которые разрешают связь хостам "fred" и "wilma" :
$clienthost fred
$clienthost fred
$clienthost wilma
Двум Хостам с именами "localhost" и именем, возвращаемым к
pbs_mom по команде gethostname() всегда разрешается связь
с pbs.nom. Эти имена не нужно указывать в конфигурационном
файле. Хосы, указанные в нем как "clienthosts", составляют
"sisterhood" ("братство") для машин. Любой член братства может
принимать связь от серверов из пределов братства. Они могут
также принимать запросы монитора ресурсов (RM) и сообщения
внутренних MOM (IM) из пределов братства. Чтобы члены братства
могли посылать друг другу IM, они должны использовать один и
тот же порт RM.
restricted
побуждает добить имя хоста к списку хостов, которые могут
связываться с MOM без необходимости использовать
привилегированный порт. Эти имена допускаются для универсального
сопоставления. Например, вот строка конфигурационного файла,
которая разрешает запросы от любого хоста из области
"ibm.com":
$restricted *.ibm.com
Ограничение, которое накладывается на эти связи, состоит в том,
что можно делать только внутренние запросы. Никакие ресурсы от
конфигурационного файла найдены не будут. Это делается для
предотвращения исполнения команд оболочки некорневыми
процессами.
logevent
Маска, которая определяет, какие события регистрирует
pbs_mom. Например:
$logevent 0x1fff
$logevent 255
Первый пример устанавливает маску событий на 0x1ff (511), что
означает регистрацию всех событий, включая отладочные.
Второй пример устанавливает маску 0x0ff (255), задействующую
все события, кроме отладочных.
cputmult
устанавливает коэффициент, используемый для подстройки времени
центрального процессора, затрачиваемого заданием. Это позволяет
приспосабливать оплачиваемое время и установленные его пределы
при исполнении задания на машинах с процессорами разной
производительности. Если система с Mom быстрее чем расчетная,
cputmult устанавливается на десятичное значение, большее чем
1.0. Если система с Mom медленнее, значение cputmult должно
устанавливаться между 1.0 и 0.0. Например:
$cputmult 1.5
$cputmult 0.75
wallmult
устанавливается на множитель, используемый для приведения
использованного заданием wall time к обычному расчетному,
аналогично тому, как cputmult используется для cpu time.
Конфигурационный файл должен быть "сохранным" ("secure"). Он должен
принадлежать пользоввателю с пользовательским и групповым
идентификатором меньше чем 10 и быть недоступным для случайных записей
(world writtable).
FILES
$PBS_SERVER_HOME/mom_priv
каталог по умолчанию для конфигурационных файлов, обычно
(/usr/spool/pbs)/mom_priv.
$PBS_SERVER_HOME/mom_logs
каталог для регистрационных файлов, в которые пишет сервер.
$PBS_SERVER_HOME/mom_priv/prologue
административный сценарий для исполнения перед исполнением
задания.
$PBS_SERVER_HOME/mom_priv/eiplogue
административный сценарий для исполнения после задания.
Обработка сигналов
Pbs_mom принимает следующие сигналы:
SIGHUP побуждает pbs_mom перечитать свой конфигурационный файл, закрыть
и переоткрыть log-файл и переинициализировать структуры ресурсов.
SIGALRM
отмечается в log-файле. Сигнал используется для ограничения времени,
затрачиваемого некоторыми вторичными (children) процессами, такими
как пролог и эпилог.
SIGINT and SIGTERM
По этим сигналам pbs_mom прерывает все исполняемые вторичные
процессы и завершается сам. Это происходит также по сигналам:
SIGXCPU, SIGXFSZ, SIGCPULIM и SIGSHUTDN.
SIGPIPE, SIGUSR1, SIGUSR2, SIGINFO игнорируются.
Для всех других сигналов их действие определяется по умолчанию при
установке.
EXIT STATUS
Если команда мини-серверу не может начать операцию, сервер заканчивается
с кодом больше нуля.
СМ. ТАКЖЕ
pbs_server(8B), pbs_scheduler_basl(8B), pbs_sched-
uler_tcl(8B), the PBS External Reference Specification
и PBS Administrator's Guide.
В начало страницы
NAME
pbs_sched_cc - pbs C планировщик
КРАТКОЕ ОПИСАНИЕ
pbs_sched [-a alarm] [-d home] [-L logfile] [-p file]
[-S port] [-R port] [-c file]
ОПИСАНИЕ
Программа pbs_sched исполняется совместно (in conjunction) с сервером PBS.
Она запрашивает сервер о состоянии PBS и связывается с pbs_resmon для
получения информации о состоянии исполняющихся заданий, доступной памяти
и т.д. Затем она принимает решение о том, какое задание исполнять.
pbs_sched должна исполняться с корневыми полномочиями.
ПАРАМЕТРЫ
-a alarm Указывает в секундах время ожидания до завершения цикла
планировщика. Если сценарий тянется слишком долго,
посылается сигнал alarm и планировщик перезапускается.
Если корневой файл отсутствует в текущем каталоге,
вызывается abort() и порождается корневой файл. По
умолчанию для alarm отводится 180 секунд.
-d home Указывает начальный каталог PBS, PBS_HOME. Текущий рабочий
каталог планировщика есть PBS_HOME/sched_priv. Если этот
параметр не задан, PBS_HOME по умолчанию заменяет
$PBS_SERVER_HOME во время процедуры построения PBS.
-L logfile Указывает имя абсолютного пути к файлу, используемому в
качестве log-файла. Если не указан, планировщик откроет
файл с именем по текущей дате в каталоге
PBS_HOME/sched_logs (см. -d option).
-p file Указывает файл "print". Любой выход от кода Си для
стандартного выхода или стандартных ошибок пойдет в этот
файл. Если этот параметр не задан, будет использоваться
файл PBS_HOME/sched_priv/sched_out. См. параметр -d.
-S port Указывает порт для употребленияe. Если не задан,
используется порт по умолчанию для планировщика PBS.
-R port Указывает порт для использования монитором ресурсов.
Если параметр не задан, используется порт по умолчанию
предназначенный для PBS mom.
Замечание: этот параметр только делает порт mom'а
доступным для writer'а планировщика. Он не требует
обязательно использовать его.
-c file Указывает конфигурационный файл, см. описание ниже.
Если это имя относительное, оно относится к
PBS_HOME/sched_priv, см. параметр -d.
Если параметр -c не определен, pbs_sched не будет
открывать конфигурационный файл.
Параметры, указывающие имена файлов, могут задавать абсолютные или
относительные имена. Если они относительные, то корневой каталог есть
PBS_HOME/sched_priv.
ИСПОЛЬЗОВАНИЕ
Эта версия планировщика требует знания языка Си и PBS API. Исходный код
дается для главной программы планировщика. Сайт должен поставить ядро
программы. Главная программа при вызове генерирует инициализирующие и
служебные рутинные операции. Затем вызывается определяемая на сайте
функция schedinit() для совершения специальных для сайта
инициализаций.
В главном цикле вызывается определяемая на месте функция chedule()
для принятия планирующих решений и производства требуемых действий .
Информация о заданиях и очередях получается от Сервера чере стандарт
PBS API по правилам в libifl.a. Информация об исполнительных хостах
получается от Монитора Ресурсов. Рутины для коммуникаций с Монитором
ресурсов имеются в libnet.a.
Если обработка занимает время, большее чем отведенное, планировщик сам
перезапустится. По умолчанию отводится три минуты. Это время изменяется
параметром -a.
По получении сигнала SIGHUP планировщик закрывает и переоткрывает свой
log-файл и вновь читает конфигурационный файл ( если такой имеется).
КОНФИГУРАЦИОННЫЙ ФАЙЛ
Этот файл может быть указан с параметром -c. Его можно использовать
для указания хостов
(серверов), которым разрешено связываться с pbs_sched.
Хосты указываются в этом конфигурационном файле так же, как в файле для
pbs_mom. На каждый хост отводится одна строка с синтаксисом:
$clienthost hostname
где clienthost и hostname разделены белым пробелом.
Двум именам хостов всегда разрешается связываться с pbs_sched. Это
"localhost" и имя, возвращаемое к pbs_sched по системному вызову
gethostname(). Эти имена не нужно указывать в конфигурационном файле.
Конфигурационный файл должен быть сохранным ("secure"). Им должен владеть
пользователь с идентификатором своим и групповым меньше 10 и он не
должен быть общедоступным для записи (world writable).
ФАЙЛЫ
$PBS_SERVER_HOME/sched_priv
каталог по умолчанию для конфигурационных файлов, обычно
(/usr/spool/pbs)/sched_priv.
ОБРАБОТКА СИГНАЛОВ
Планировщик на базе Си обрабатывает следующие сигналы:
SIGHUP Сервер закрывает и переоткрывает свой log-файл и вновь читает
конфигурационный файл, если он есть.
SIGALRM
Если приготовленный на сайте планирующий модуль превышает лимит
времени, Alarm побуждает планировщика сделать дамр ядра и
перезапуститься.
SIGINT and SIGTERM
Приводят к правильному завершению планировщика.
Все остальные сигналы определяются начальными параметрами установки.
EXIT STATUS
При нормальном завершении выдается нулевой код возврата.
СМ. ТАКЖЕ
pbs_sched_rule(8B), pbs_sched_tcl(8B), pbs_server(8B),
pbs_mom(8B), the PBS External Reference Specification,
и the PBS Internal Design Specification.
В начало страницы
ИМЯ
pbs_sched_basl - pbs BASL планировщик
КРАТКОЕ ОПИСАНИЕ
pbs_sched [-d home] [-L logfile] [-p print_file] [-a
alarm] [-S port] [-c configfile]
ОПИСАНИЕ
Команда pbs_sched начинает операцию пакетного планирования на локальном
хосте. Она действует вместе с сервером PBS. Она запрашивает сервер о
состоянии PBS и связывается с pbs_mom для получения информации об
исполняемых заданиях, доступной памяти и т.д. Затем принимает решение
о том, какое задание запустить.
Обычно эта команда находится в локальном загрузочном (boot) файле
/etc/rc.local.
pbs_sched должна исполняться с корневыми привилегиями.
ПАРАМЕТРЫ
-d home
Указывает имя начального каталога PBS, PBS_HOME. Если не указан,
используется значение $PBS_SERVER_HOME, определенное
во время компиляции. См. также параметр -L.
-L logfile
Указывает абсолютный путь к log-файлу. Если не указано, планировщик
откроет файл с именем по текущей дате в каталоге PBS_HOME/sched_logs
См. параметр -d.
-p print_file
Указывает файл "print". Всякий выход от программы планировщика,
направляемый в стандартный выход или стандартные ошибки, поступает
в этот файл. Если параметр не задан, используется файл
$PBS_HOME/sched_priv/sched_out. См. параметр -d.
-a alarm
Указывает время ожидания конца цикла планировщика. Если он тянется
дольше, посылается сигнал alarm и планировщик перезапускается.
Если корневой (core) файл не существует в текущем каталоге,
вызывается abort() и порождается корневой файл. По умолчания alarm
выдается через 180 секунд.
-S port
Указывает порт для передач серверу. Это не обязательная опция. Она
только подавляет порт по умолчанию для планировщика PBS.
-c configfile
Указывает конфигурационный файл, см. описание ниже.
Если это относительное имя, оно относится к
PBS_HOME/sched_priv, см. параметр -d. Если не указан параметр -с,
pbs_sched не будет открывать конфигурационный файл. В BASL, этот
файл нужен почти всегда, потому что в нем администратор указывает
список серверов, узлов и требования хоста на ресурсы.
ИСПОЛЬЗОВАНИЕ
Эта версия планировщика требует знания языка BASL. Сайт должен сначала
написать функцию с именем sched_main() (и все ее вспомогательные функции)
с помощью конструкций BASL, а затем перевести на Си с помощью
компилятора basl2c, который также добавляет главную программу к
результирующему коду. Эта главная программа производит общие
инициализирующие и другие служебные рутины, такие как установка локальных
разъемов для коммуникаций с сервером на той же машине, переход к каталогу
priv directory, открытие log-файлов, конфигурационного файла (если есть),
установку замков, размножение демонов, инициализацию цикла планирования
(т.е. получение атрибутов узлов, которые статичны по природе), установка
обработчиков сигналов, выполнение глобальных инициализирующих операторов
присваивания, указанных writer'ром планировщика и, наконец, входа в
цикл ожидания команд на планирование от сервера. Когда сервер посылает
планировщику соответствующую команду на планирование
{SCH_SCHEDULE_NEW, SCH_SCHEDULE_TERM,
SCH_SCHEDULE_TIME, SCH_SCHEDULE_RECYC, SCH_SCHED-
ULE_CMD, SCH_SCHEDULE_FIRST}, информация о сервере (серверах), заданиях,
очередях и исполнительных хостах уже получена и можно вызывать
sched_main().
ЯЗЫК ПЛАНИРОВАНИЯ
Пакетный язык планирования (BASL) есть Cи-подобный процедурный язык.
Он имеет ряд конструкций и предопределенных функций, которые облегчают
планирование. Информация о сервере PBS, его очередях, размещении заданий
по очередям, и об компьютерных узлах, где задания могут исполняться,
доступна через типы данных BASL: Server, Que, Job, CNode, Set Server,
Set Que, Set Job, и Set CNode.
Следующая простая команда sched_main() заставит сервер запустить все
задания, стоящие в очереди на локальном сервере:
sched_main()
{
Server s;
Que q;
Job j;
Set Que queues;
Set Job jobs;
s = AllServersLocalHostGet(); // get local server
queues = ServerQueuesGet(s);
foreach( q in queues ) {
jobs = QueJobsGet(q);
foreach( j in jobs ) {
JobAction(j, SYNCRUN, NULLSTR);
}
}
}
Подробно о Пакетном языке планирования см. basl2c(1B).
Конфигурационный файл
Конфигурационый файл можно указать с параметром -c. Этот файл используется
для указания: (1) хостов, которым разрешено связываться с pbs_sched,
(2) списка серверских хостов, для которых writer планировщика хочет, чтобы
система периодически проверяла статус, очереди и информацию о заданиях,
(3) списка исполнительных хостов, для которых writer планировщика
требует периодической проверки информации, такой как состояние, свойства и
т.п., (4) различных запросов, посылаемых каждому исполнительному хосту.
(1) указание хостов-клиентов:
Хосты, которым разрешается связываться с pbs_sched, указываются
в конфигурационном файле так же, как для pbs_mom. Имеется по
одной строке на хост с синтаксисом:
$clienthost hostname
где clienthost и hostname разделены белым пробелом.
Два имени всегда допускаются к pbs_sched: "localhost" и имя,
возвращаемое к pbs_sched по системному вызову gethostname().
Эти имена не надо указывать в файле.
(2) указание списка серверов:
Список серверов указывается по одному в строке вида
$serverhost hostname port_number
где $server_host, hostname, и port_number разделены белыми
пробелами.
Если port_number есть 0, то используется порт по умолчанию для
сервера PBS.
Независимо от того, что указано в файле, в список серверов всегда
входит локальный сервер -- работающий на одном хосте с
планировщиком.
В пределах кода BASL, доступ к данным списка серверов производится
вызовом AllServersGet() или AllServersLocalHostGet(), которые
возвращают локальный список.
(3) указание списка исполнительных хостов:
Список исполнительных хостов (узлов), чьи MOM'ы должны опрашиваться
планировщиком, указывается по одному хосту в строках вида
$momhost hostname port_number
где $momhost, hostname и port_number разделены белыми пробелами.
Если номер порта есть 0, то используется порт по умолчанию для
PBS MOM.
Функция BASL AllNodesGet() или
ServerNodesGet(AllServersLocalHostGet()) доступна для получения
списка узлов, известных локальной системе.
(4) указание списка ресурсов хоста:
Для указания списка запросов на ресурсы хоста, посылаемых к MOM'ам
исполнительных хостов, используется следующий синтаксис:
$node node_name CNode..Get host_resource
node_name должно быть той же цепочкой, которая указана в строке
$momhost. Имя узла "*" (wildcard) соответствует любому
узлу.
Насчет списка возможных значений для параметра host_resourse см.
раздел 9 в PBS ERS (Resource Monitor/Resources)
CNode..Get есть фактическое имя функции, которая вызывается из кода
планировщика для получения ответа на запрос ресурсов. Список имен
функций CNode..Get, которые могут появиться в конфигурационном
файле следующий:
================================
STATIC:
================================
CNodePropertiesGet
CNodeVendorGet
CNodeNumCpusGet
CNodeOsGet
CNodeMemTotalGet[type]
CNodeNetworkBwGet[type]
CNodeSwapSpaceTotalGet[name]
CNodeDiskSpaceTotalGet[name]
CNodeDiskInBwGet[name]
CNodeDiskOutBwGet[name]
CNodeTapeSpaceTotalGet[name]
CNodeTapeInBwGet[name]
CNodeTapeOutBwGet[name]
CNodeSrfsSpaceTotalGet[name]
CNodeSrfsInBwGet[name]
CNodeSrfsOutBwGet[name]
================================
DYNAMIC:
================================
CNodeIdletimeGet
CNodeLoadAveGet
CNodeMemAvailGet[type]
CNodeSwapSpaceAvailGet[name]
CNodeSwapInBwGet[name]
CNodeSwapOutBwGet[name]
CNodeDiskSpaceReservedGet[name]
CNodeDiskSpaceAvailGet[name]
CNodeTapeSpaceAvailGet[name]
CNodeSrfsSpaceReservedGet[name]
CNodeSrfsSpaceAvailGet[name]
CNodeCpuPercentIdleGet
CNodeCpuPercentSysGet
CNodeCpuPercentUserGet
CNodeCpuPercentGuestGet
Функции с именами STATIC возвращают значения, получаемые только
во время первого цикла планирования, или когда планировщику
предписывается переконфигурация;
функции с именами DYNAMIC возвращают значения атрибутов, которые
определяются в цикле планирования.
Имя и тип определяются произвольно. Например, можно выбрать
имя, определенное как "$FASTDIR" для вызовов CNodeSrfs* , и
примером строки конфигурационного файла может быть:
$node unicos8 CNodeSrfsSpaceAvailGet[$FASTDIR]
quota[type=ares_avail,dir=$FASTDIR]
Так в коде BASL, если вызвать
CNodeSrfsSpaceAvailGet(node, "$FASTDIR"), то это будет
возвращать ответ на запрос
"quota[type=ares_avail,dir=$FASTDIR]" (3-ий параметр),
посланный к узловому MOM.
По умолчанию, планировщик уже имеет внутренне определенные
следующие отображения, которые могут быть подавлены в
конфигурационном файле:
========= ========== ================= =============
keyword node_name CNode..Get host_resource
======= ========= ================ =============
$node * CNodeOsGet arch
$node * CNodeLoadAveGet loadave
$node * CNodeIdletimeGet idletime
Сказанное выше означает, что для всех объявленных (через $momhost)
узлов запросы на arch, loadave и idletime будут посланы
к каждому узловому MOM. Значение для arch получается системой
внутренне, во время первого цикла планирования, потому что это
относится к категории STATIC, в то время как значения для
loadave и idletime берутся при каждой планировочной итерации, так
как они относятся к категории DYNAMIC. Доступ к возвращенным
значениям происходит по вызовам CNodeOsGet(node),
CNodeLoadAveGet(node) и CNodeIdletimeGet(node) соответственно.
Приведем несколько примеров аргументов $node, которые можно
поместить в конфигурационный файл.
================== ======================== ==========
node_name CNode..Get host res
================== ========================= ==========
CNodeIdletimeGet idletime
CNodeLoadAveGet loadave
CNodeMemTotalGet[real] physmem
CNodeMemTotalGet[virtual] totmem
CNodeMemAvailGet[virtual] availmem
CNodeNumCpusGet ncpus
CNodeMemTotalGet[real] physmem
CNodeMemTotalGet[virtual] totmem
CNodeIdletimeGet idletime
CNodeLoadAveGet loadave
CNodeMemAvailGet[virtual] availmem
CNodeNumCpusGet ncpus
CNodeMemTotalGet[real] physmem
CNodeMemTotalGet[virtual] totmem
CNodeIdletimeGet idletime
CNodeLoadAveGet loadave
CNodeMemAvailGet[virtual] availmem
CNodeIdletimeGet idletime
CNodeLoadAveGet loadave
CNodeNumCpusGet ncpus
CNodeMemTotalGet[real] physmem
CNodeIdletimeGet idletime
CNodeLoadAveGet loadave
CNodeMemTotalGet[virtual] totmem
CNodeMemAvailGet[virtual] availmem
CNodeIdletimeGet idletime
CNodeLoadAveGet loadave
CNodeNumCpusGet ncpus
CNodeMemTotalGet[real] physme
CNodeMemAvailGet[virtual] availmem
CNodeSwapSpaceTotalGet[primary] swaptotal
CNodeSwapSpaceAvailGet[primary] swapavail
CNodeSwapInBwGet[primary] swapinrate
CNodeSwapOutBwGet[primary] swapoutrate
CNodePercentIdleGet cpuidle
CNodePercentSysGet cpuunix
CNodePercentGuestGet cpuguest
CNodePercentUsrGet cpuuser
CNodeSrfsSpaceAvailGet[$FASTDIR] quota[type
=ares_avail,dir=$FASTDIR]
CNodeSrfsSpaceAvailGet[$BIGDIR] quota[type
=ares_avail,dir=$BIGDIR]
CNodeSrfsSpaceAvailGet[$WRKDIR] quota[type
=ares_avail,dir=$WRKDIR]
CNodeLoadAveGet loadave
Предположим, имеется исполнительный хост типа irix5 os,
такой что входы должны консультироваться
планировщиком. Начальный цикл планирования будет связан с
посылкой запросов типа STATIC ncpus, physmem, totmem к MOM'у
исполнительного хоста, и доступ к возвращенным ответам на запросы
происходит через CNodeNumCpusGet(node),
NodeMemTotalGet(node, "real"),
CNodeMemTotalGet(node, "virtual") соответственно, где узел есть
представление CNode исполнительного хоста. Очередные циклы
планирования будут только посылать DYNAMIC-запросы idletime,
loadave и availmem, и доступ к ответам на запросы происходит
через CNodeIdleTimeGet(node), CNodeLoadAveGet(node),
CNodeMemAvailGet(node, "virtual") соответственно.
"Позднейшие" строки в конфигурационном файле имеют преимущество.
Конфигурационный файл должен быть "сохранным" ("secure"). Его владелец должен
иметь пользовательский и групповой id меньше чем 10 и не быть общедоступным
для записи (world writable).
По получении сигнала SIGHUP планировщик закрывает и переоткрывает свой
log-файл и читает вновь свой конфигурационный файл (если есть).
ФАЙЛЫ
$PBS_SERVER_HOME/sched_priv
каталог по умолчанию для конфигурационных файлов, обычно
(/usr/spool/pbs)/sched_priv.
Обработка сигналов
Планировщик на базе Си принимает следующие сигналы:
SIGHUP Сервер закрывает и переоткрывает log-файл и вновь читает
конфигурационный файл, если он имеется.
SIGALRM
Если приготовленный на сайте планирующий модуль превысит лимит
времени, Alarm побудит планировщика к дампу ядра и своему рестарту.
SIGINT and SIGTERM
приводят к правильному завершению планировщика.
Все остальные сигналы приводят к установленным по умолчанию действиям.
EXIT STATUS
При нормальном завершении код возврата равен нулю.
СМ. ТАКЖЕ
basl2c(1B), pbs_sched_tcl(8B), pbs_server(8B),
pbs_mom(8B), BS External Reference Specification
и PBS Internal Design Specification.
В начало страницы
ИМЯ
pbs_sched_tcl - pbs Tcl планировщик
КРАТКОЕ ОПИСАНИЕ
pbs_sched [-a alarm] [-b file] [-d home] [-i file]
[-L logfile] [-p file] [-S port] [-t file] [-v]
[-c file]
ОПИСАНИЕ
Программа pbs_sched работает вместе с сервером PBS. Она запрашивает сервер
о состоянии PBS и связывается с pbs_mom для получения информации о статусе
исполняемых заданий, доступной памяти и т.д. Затем она принимает решение
о том, какие задания исполнять.
pbs_sched должна исполняться с корневыми полномочиями.
ПАРАМЕТРЫ
-a alarm Определяет в секундах время ожидания окончания цикла
планирования. Если сценарий затягивается, посылается
сигнал alarm и планировщик перезапускается.
Если корневого файла нет в текущем каталоге, вызывается
abort() и порождается корневой (core) файл. По умолчанию
для alarm отводится 180 секунд.
-b file Это определяет "body"-файл. Указанный файл читается в
память один раз при старте программы или после получения
сигнала SIGHUP и выполняется каждый раз, когда сервер
будит планировщик. Если этот параметр не задан, в качестве
"body" читается файл "sched_tcl" из каталога
PBS_HOME/sched_priv.
-d home Указывает начальный каталог PBS, PBS_HOME. Текущим рабочим
каталогом планировщика служит PBS_HOME/sched_priv. Если
этот параметр не задан, PBS_HOME по умолчания заменяется
на $PBS_SERVER_HOME, определенный в процедуре построения
PBS.
-i file Определяет файл "initialize". Этот файл исполняется один
раз перед входом в главный цикл обработки. Если параметр не
задан, никакой инициализирующий код не исполняется.
-L logfile Указывает абсолютный путь к файлу, используемому как
log-файл. Если не указан, планировщик откроет файл с
именем по текущей дате в каталоге PBS_HOME/sched_logs
(см. параметр -d).
-p file Это указывает на файл "print". Всякий выход от кода Tcl
для стандартного выхода или стандартных ошибок пишется
в этот файл. Если параметр не задан, будет использоваться
PBS_HOME/sched_priv/sched_out. См. параметр -d.
-S port Указывает порт для использования. Если не задан,
используется порт, отводимый по умолчанию для планировщика
PBS.
-t file Указывает файл-"terminator". Если сервер выдает команду
QUIT, этот код исполняется перед завершением планировщика.
Если параметр не определен, никакой специальной
заключительной обработки не производится.
-v Это переводит планировщик в режим "verbose" (подробности).
Каждая ошибка показывается независимо от установки
этого параметра, но некоторые "малозначащие" события
регистрируются при установке этого флажка. Примером может
служить сообщение о каждом контакте сервера и планировщика.
-c file Указывает конфигурационный файл, см. описание ниже.
Если это относительное имя, то оно относится к
PBS_HOME/sched_priv, см. параметр -d.
Если параметр -c не установлен, pbs_sched не будет
пытаться открыть конфигурационный файл.
Параметры, означающие имена файлов, могут быть абсолютными или
относительными. Если они относительны, их начальный каталог есть
PBS_HOME/sched_priv.
УПОТРЕБЛЕНИЕ
Эта версия планировщика требует знания языка Tcl. Множество функций
для коммуникаций с сервером PBS и монитором ресурсов добавляется к
нормально доступным в Tcl. Все обращения к ним устанавливают переменную
"pbs_errno" на значение, указывающее ошибку, если она произойдет.
Во всех случаях значение
"0" показывает отсутствие ошибки. Если сделано обращение к функции
Монитора ресурсов, каждый код ошибки приходит от системы в переменную
errno. Если вызывается функция коммуникации с сервером PBS, всякий
код ошибки передается туда сервером.
openrm host ?port?
Создает связь с Монитором ресурсов PBS на хосте, используя порт
с указанным номером или стандартный порт для монитора ресурсов,
если номер не указан. Дескриптор связи возвращается. Если открытие
прошло успешно, он представляет неотрицательное целое. Если нет,
выдается ошибка.
closerm connection
Параметрическая связь есть дескриптор для монитора ресурсов,
который ранее был возвращен от openrm. Эта связь закрывается.
Ничего не возвращается.
downrm connection
Посылает команду закрыться к монитору ресурсов на связи.
Ничего не возвращается.
configrm connection filename
Посылает команду к монитору ресурсов на связи прочесть
конфигурационный файл, заданный именем filename.
При успехе возвращается "0", при неудаче "-1".
addreq connection request
Запрос на ресурс посылается к монитору ресурсов на связи.
При успехе возвращается "0", при неудаче "-1".
getreq connection
Возвращается один ответ на запрос ресурсов от монитора ресурсов
на связи. Если происходит ошибка или ответов больше нет,
возвращается пустая цепочка.
allreq request
Запрос на ресурс посылается всем мониторам ресурсов на связи.
В ответ возвращается количество действующих потоков.
flushreq
Все запросы на ресурсы, посланные ранее ко всем
мониторам ресурсов на связи, передаются в сеть. Ничего не
возвращается.
activereq
Возвращается количество связей следующего потока с чем-то для
чтения. Если ни по какой связи читать нечего, возвращается
отрицательное число.
fullresp flag
Вычисляется булевское выражение flag и устанавливается на full
режим ответа для getreg, если вычисленное значение есть "true".
Ответ в режиме full от монитора ресурсов включает оригинальный
запрос с знаком равенства после него и ответом на запрос.
В ситуации по умолчанию возвращается только знак равенства с
ответом после него. Данную функцию можно использовать, если
по сценарию нужно "видеть" всю строку целиком.
pbsstatserv
Серверу посылается запрос о нем самом. При успехе возвращается
список из трех элементов, при неудаче -- пустая цепочка. Первый
элемент списка есть имя сервера, второй -- список атрибутов.
Третий есть "text", связанный с сервером (обычно пробел)
pbsstatjob
Серверу посылается запрос о состоянии всех его заданий. При успехе
возвращается список, при неудаче пустая цепочка.
Список содержит по элементу (строке) на каждое задание.
Каждый элемент имеет три позиции. Первая есть идентификатор
задания. Вторая -- список атрибутов. Имена атрибутов, определяющих
ресурсы, имеют имя вида "Resource_List:name", где "name" есть
имя ресурса. Третья есть "text", связанный с заданием (обычно
пробел).
pbsstatque
Серверу посылается запрос о всех очередях в его ведении.
При успехе возвращается список, при неудаче -- пустая цепочка.
Список содержит по элементу (строке) на каждую очередь.
Каждый элемент есть
список из трех элементов. Первый -- имя очереди. Второй -- список
атрибутов, как в pbsstatjob. Третий есть "text", связанный с
очередью (обычно пробел).
pbsstatnode
Сервер получает запрос на информацию о всех узлах, определенных в
пределах сервера. При успехе возвращается список, при неудаче --
пустая цепочка. Список содержит но элементу на каждый узел.
В свою очередь, каждый элемент есть список из трех позиций.
Первая -- имя узла, Вторая-- список атрибутов. Третья-- текст,
связанный с узлом (обычно пусто).
pbsselstat
Серверу посылается запрос о всех исполняемых заданиях.
При успехе возвращается список, подобный pbsstatjob, иначе --
пустая цепочка.
pbsrunjob jobid ?location?
Запускает задание с идентификатором jobid в месте, указанном
как location. Если location не задано, место выбирается по
умолчанию. Если запрос выполнен, возвращается "0", иначе "-1".
pbsasyrunjob jobid ?location?
Запускается задание jobid в месте location, без ожидания
положительного ответа, что задание действительно запущено.
Если location не задано, используется место по умолчанию. Если все
прошло успешно, возвращается "0", иначе возвращается "-1".
pbsrerunjob jobid
Перезапускается задание, указанное своим jobid. При успехе
возвращается "0", иначе "-1".
pbsdeljob jobid
Исключается задание jobid. При успехе возвращается "0", иначе "-1".
pbsholdjob jobid
Накладывается hold на задание jobid. При успехе возвращается "0",
иначе "-1".
pbsmovejob jobid ?location?
Переводит задание, указанное идентификатором jobid, в место,
указанное как location. Если location не задано, место берется
по умолчанию. При успехе возвращается "0", иначе "-1".
pbsqenable queue
Устанавливает на true атрибут "enabled" для указанной очереди.
При успехе возвращается "0", иначе -1".
pbsqdisable queue
Устанавливает атрибут "enabled" для указанной очереди на false.
При успехе возвращается "0", иначе "-1".
pbsqstart queue
Устанавливает атрибут "started" для указанной очереди на true.
при успехе возвращается "0", иначе"-1".
pbsqstop queue
Устанавливает атрибут "started" для указанной очереди на false.
При успехе возвращается "0", иначе "-1".
pbsalterjob jobid attribute_list
Изменяет атрибуты задания, указанного идентификатором jobid.
Параметр attribute_list есть список атрибутов для изменения.
Их должно быть более одного. Каждый атрибут представляет список из
трех элементов. Первый есть имя, второй есть ресурс и третий есть
новое значение. При успешном изменении возвращается "0", иначе "-1"
pbsrescquery resource_list
Получить информацию о ресурсах, указанных в resource_list. Это
должен быть список цепочек. Если запрос прошел успешно,
возвращается список с тем же количеством элементов, что и в
resource_list. Каждый элемент в этом списке будет
список из четырех чисел. Они имеют соответственно смысл:
доступен, отведен, зарезервирован, down .
pbsrescreserve resource_id resource_list
Делает (или распространяет) резервирование для ресурсов,
перечисленных в resource_list, заданном как список цепочек.
Параметр resource_id есть номер, являющийся уникальным
идентификатором для производимого сервером резервирования. Если
resource_id есть "0", создается новое резервирование. В этом
случае генерируется новый идентификатор и возвращается функцией.
Если используется старый идентификатор, возвращается этот же самый
номер. Переменная Tcl "pbs_errno" устанавливается для указания
успеха или неудачи резервирования.
pbsrescrelease resource_id
Резервирование, сделанное по указанию в resource_id, снимается.
Две следующие команды обычно не используются планировщиком. Они включены
сюда, потому что могут ему понадобиться для контактов с сервером,
отличных от обычных контактов. Эти команды используются также средствами
Tcl.
pbsconnect ?server?
Устанавливает связь с названным сервером или с сервером по
умолчанию, если параметр не задан. Только одна связь с
сервером допускается одновременно.
pbsdisconnect
Разорвать связь с временно доступным сервером.
Перечисленные выше функции Tcl используют обращения к библиотеке
интерфейса PBS для коммуникаций с сервером и к библиотеке монитора
ресурсов PBS для коммуникаций с pbs_mom.
datetime ?day? ?time?
Количество использованных аргументов определяет тип даты. Если
аргументов нет, возвращается текущая дата POSIX. Это целое число
секунд.
При одном аргументе возможны два формата. Первый состоит из 12
(или больше) знаков,
и указывает полную дату в формате:
ГГММДДЧЧММСС
Все знаки - цифры. Год (ГГ) указывается двумя первыми (или больше)
цифрами и есть количество лет с 1900 года. Месяц (ММ) есть порядковый
номер месяца [01-12]. День (ДД) есть день месяца [01-32].
Час (ЧЧ) есть час дня [00-23]. Минуты (ММ) есть минуты после
указанного часа [00-59]. Секунды (СС) есть секунды после
минут [00-59].
Возвращается дата POSIX по заданным date/time.
Второй вариант с одним аргументом есть относительное время
HH:MM:SS
Часы (HH), минуты (MM) и секунды (SS) разделяются двоеточиями ":".
В этом случае возвращаемое число есть количество секунд в указанном
интервале, а не абсолютная дата POSIX.
При двух аргументах вычисляется относительная дата. Первый аргумент
указывает день недели и должен быть одной из следующих цепочек:
"Sun", "Mon", "Tue", "Wed", "Thr", "Fri" или "Sat". Второй аргумент
есть относительное время, как указано выше. Вычисленная дата POSIX
будет день данной недели, следующий за текущим днем, и время,
заданное во втором аргументе. Например, если текущий день был
Monday (Понедельник), а два оргумента были "Fri" (Пятница) и
"04:30:00", вычисленная дата будет дата POSIX для Friday,
следующего за текущим Monday, четыре-тридцать утра. Если указанный
день и текущий день совпадают, используется текущий день, а не день
следующей недели.
strftime format time
Эта функция вызывает функцию POSIX strftime(). Она требует
два аргумента. Первый есть форматная строка. Форматные соглашения
те же, что для POSIX-функции strftime(). Второй аргумент есть
календарное время POSIX в секундах, как это возвращается по
datetime. Она возвращает цепочку на базе указанного формата.
Это дает возможность извлекать информацию о времени или
форматировать ее для печати.
Интерпретатор Tcl запускается при инициализации программы
и после сброса (получения сигнала SIGHUP). Он не снимается между
исполнениями планировщика, так что переменные, установленные сначала,
доступны и позднее.
Файлы "initialize" и "terminator" исполняются без дополнительных связей
с сервером. Это означает, что никакая из названных выше функций,
обращающихся к серверу, не будет работать раньше вызова pbsconnect.
Файл "body" выполняется при уже установленной связи с сервером.
КОНФИГУРАЦИОНЫЙ ФАЙЛ
Конфигурационный файл может быть указан с параметром -c. Этот файл можно
использовать для указания хостов (серверов), которым разрешено
связываться с pbs_sched. Хосты указываются в конфигурационном файле
способом, аналогичным употребленному в pbs_mom. Имеется по одной строке
на хост с синтаксисом:
$clienthost hostname
где clienthost and hostname разделены белым пробелом.
Хосты с двумя именами всегда допускаются к связи с pbs_sched:
"localhost" и хост с именем, возвращаемым к pbs_sched по вызову
gethostname(). Эти имена не нужно указывать в конфигурационном файле.
Конфигурационный файл должен быть "secure". Он должен принадлежать
пользователю и группе с идентификаторами меньше 10 и не быть
общедоступным для записи.
ФАЙЛЫ
$PBS_SERVER_HOME/sched_priv
каталог по умолчанию для конфигурационных файлов, обычно
(/usr/spool/pbs)/sched_priv.
Обработка сигналов
Планировщик на базе Си обрабатывает следующие сигналы:
SIGHUP Сервер закрывает и переоткрывает свой log-файл и вновь читает
конфигурационный файл, если он есть.
SIGALRM
Если приготовленный на сайте планирующий модуль перерасходует лимит
времени, Alarm побуждает планировщик к дампу ядра и перезапуску.
SIGINT and SIGTERM
Приводят к правильному завершению планировщика.
Все другие сигналы действуют по правилам умолчания установки.
EXIT STATUS
При нормальном завершении код возврата есть ноль.
СМ. ТАКЖЕ
pbs_scheduler_cc(8B), pbs_scheduler_rule(8B),
pbs_server(8B), pbs_mom(8B), the PBS External Reference
Specification и the PBS Internal Design Specification.
В начало страницы
ИМЯ
qmgr - системный менеджер pbs batch
КРАТКОЕ ОПИСАНИЕ
qmgr [-a] [-c command] [-e] [-n] [-z] [server...]
ОПИСАНИЕ
Команда qmgr обеспечивает интерфейс администратора с пакетной системой.
Команда читает директивы из стандартного ввода. Проверяется синтаксис
каждой директивы и соответствующий запрос направляется к пакетному
серверу или к серверам
Подкоманды перечисления или печати от qmgr могут выполняться для обычных
пользователей. Создание или уничтожение очередей требует привилегии
администратора PBS. Установка или снятие сервера требует привелегии
оператора или менеджера.
Параметры
-a Аборт qmgr при синтаксических ошибках или неприятиях
запроса сервером.
-c command Выполнить одну команду и завершить qmgr.
-e Эхо всех команд на стандартном выходе.
-n Команды не выполнять, проводить только синтаксический контроль.
-z Не писать ошибки в стандартный выход для ошибок.
ОПЕРАНДЫ
Операнды server определяют имя пакетного сервера, к которому
администратор посылает запросы.
Каждый операнд server имеет синтаксис:
host_name[:port]
где host_name есть сетевое имя хоста, на котором работает сервер,
а порт есть имя порта для связи. Если порт не указан, используется номер,
определяемый по умолчанию.
Если сервер не указан , запросы администратора посылаются локальному
серверу.
СТАНДАРТНЫЙ ВВОД
Команда qmgr читает директивы из стандартного ввода до достижения
конца файла, или выхода или директивы quit.
СТАНДАРТНЫЙ ВЫВОД
Если стандартный вывод идет на терминал, приглашение выдается на
терминал, когда qmgr готова читать директивы.
Если указан параметр -e, qmgr выдает эхо для директив из стандартного
ввода на стандартный вывод.
STANDARD ERROR
Если параметр -z не указан, командв qmgr будет выдавать диагностические
сообшения на стандартный выход для ошибок.
РАСШИРЕННОЕ ОПИСАНИЕ
Если qmgr запущена без параметра -c и стандартный вывод идет на
терминал, qmgr будет писать приглашение в стандартный вывод, а директивы
читать со стандартного ввода.
Команды можно сокращать до минимально различимой формы. Команда
оканчивается знаком новой строки или точки с запятой, ";". В одной строке
можно писать несколько команд. Команда может переносится со строки на
строку, если перед переводом строки написать обратный слеш "\".
Комментарии начинаются с знака # и кончаются концом строки.
Комментарии и пустые строки qmgr игнорирует .
Синтаксис директив
Директивы qmgr имеют один из следующих форматов:
command server [names] [attr OP value[,attr OP value,...]]
command queue [names] [attr OP value[,attr OP value,...]]
command node [names] [attr OP value[,attr OP value,...]]
где command означает операцию но объекте. Команды такие:
active устанавливает активные объекты. При ссылке на
активные обекты, если в команде qmgr не указаны
их имена, используются имена активных объектов.
create создание нового объекта, применяется к очередям и
узлам.
delete уничтожить существующий объект,
применяется к очередям и узлам.
set определить или изменить значения атрибутов объекта
unset очистить значения атрибутов объекта. Отметим, что
эта форма не принимает Op или значение, а
а только имя атрибута.
list перечислить текущие атрибуты и их значения на объекте.
print напечатать все очереди и атрибуты сервера в формате,
который используется как ввод для команды qmgr.
names список из одного или более имен указываемых объектов.
Список имеет форму:
[name][@server][,queue_name[@server]...]
без белых пробелов. Имя объекта объявляется, когда объект
создается впервые. Если имя есть @server, то все объекты
указанного типа на сервере становятся эффективными.
attr указывает имя атрибута объекта, который нужно установить или
модифицировать. Атрибуты объектов описаны в разделе 2 в ERS.
(External Reference Specification)
Если атрибут --- такой, который состоит из набора ресурсов, то
атрибут указывается в форме:
attribute_name.resource_name
OP операция, которая должна быть произведена с атрибутом и его
значением:
= установить значение атрибута. Если атрибут уже имеет
значение, оно заменяется новым.
+= увеличить текущее значение атрибута на величину в новом
значении.
-= уменьшить текущее значение атрибута на количество в новом
значении.
value значение для присваивания атрибуту. Если значение содержит
белый пробел, запятые или другие
специальные знаки, такие как # , значение цепочки должно быть
заключено в кавычки (").
Дальше следуют примеры директив qmgr:
create queue fast priority=10,queue_type=e,enabled = true,max_running=0
set queue fast max_running +=2
create queue little
set queue little resources_max.mem=8mw,resources_max.cput=10
unset queue fast max_running
set node state = "down,offline"
active server s1,s2,s3
list queue @server1
set queue max_running = 10 - использует активные очереди
EXIT STATUS
При условии успешной обработки всех представленных в команде qmgr
операндов код возврата равен нулю.
Если команда qmgr не сможет обработать какой-нибудь операнд, код возврата
будет иметь значение больше нуля.
СМ. ТАКЖЕ
pbs_server(8B), pbs_queue_attributes(7B),
pbs_server_attributes(7B), qstart(8B), qstop(8B), qen-
able(8B), qdisable(8), и the PBS External Reference
Specification
В начало страницы
Атрибуты сервера могут читаться любым клиентом, привилегий не требуется.
Большинство атрибутов сервера могут изменяться пользователями с
администраторскими или операторскими привилегиями. Некоторые атрибуты требуют
от пользователя полных администраторских привилегий. Вот список атрибутов
сервера.
acl_host_enable
Атрибут при значении true побуждает сервер использовать списки
acl_hosts контроля доступа. Требует полных администраторских
привилегий для установки или изменения значения. Формат:
boolean, "TRUE", "True", "true", "Y", "y", "1",
"FALSE", "False", "false", "N", "n", "0"; значение по умолчанию:
false = disabled. [встроенный тип: boolean]
acl_hosts
Список хостов, которые могут запрашивать услуги от этого сервера.
Он содержит сетевые имена хостов. Локальные запросы, т.е. запросы от
самого серверского хоста, всегда принимаются, даже если хост не
содержится в списке. См. раздел 10.1, Authorization, в PBS External
Reference Specificaiton. Для установки или изменения списка
требуется полная менеджерская привилегия. Формат списка:
"[+|-]hostname.domain[,...]"; Значение по умолчанию: все хосты.
[встроенный тип: список контроля доступа]
acl_user_enable
Атрибут, который при значении true побуждает сервер использовать
список доступа acl_users на уровне сервера.
Для установки или изменения требуется полная привилегия менеджера.
Формат: boolean (см. acl_group_enable); значение по умолчанию:
disabled. [встроенный тип: boolean]
acl_users
Список пользователей, которым разрешено или запрещено делать запросы
к этому серверу. См. раздел 10.1, Authorization (Уполномочивание)
в PBS External Reference Specificaiton. Требует полных привилегий
менеджера для установки или изменения. Формат:
"[+|-]user[@host][,...]"; значение по умолчанию: разрешено всем
пользователям. [встроенный тип: список контроля доступа]
acl_roots
Список супер-пользователей, кто может представлять и исполнять
задания на этом сервере. Если исполнительный идентификатор задания
есть ноль (0), то хозяим задания, root@host, должен числиться в этом
списке контроля доступа, иначе задание будет отвергнуто. Формат:
"[+|-]user[@host][,...]"; значение по умолчанию: корневые
задания не допускаются. [встроенный тип : список контроля доступа]
комментарий
Текстовая цепочка, которая может быть установлена планировщиком
или другим привилегированным клиентом для информирования
пользователей пакетной системы. Формат: произвольная цепочка;
значение по умолчанию: отсутствует. [встроенный тип: цепочка]
default_node
Спецификация узла, которая используется, если нет никаких других
спецификаций. Этот атрибут исползуется только теми серверами, где
имеется файл узлов в каталоге server_priv, содержащий список узлов
сервера. Если такого файла нет, атрибут не устанавливается по
умолчанию, а если установлен, то игнорируется. Значение по умолчанию
разрешает заданиям совместно использовать единственный узел. Формат:
цепочка спецификации узла; значение по умолчанию: 1#shared.
[встроенный тип: цепочка]
default_queue
Целевая очередь в случае, если в запросе не указано имя очереди.
Формат: имя очереди; значение по умолчанию: отсутствует, должно
устанавливаться на одну из существующих очередей. [встроенный тип:
цепочка]
log_events
Битовая цепочка, которая указывает тип регистрируемых событий, см.
раздел о регистрации событий в главе 3 в ERS. Формат: целый;
значение по умолчанию: 511, все события. [встроенный тип: целый]
mail_uid
Идентификатор пользователя, от имени которого сервер генерирует
сообщение пользователям. Формат: целый uid; значение по умолчанию:
0 для корня. [встроенный тип: целый]
managers
Список пользователей с привилегиями администратора. Формат:
user@host.sub.domain[,user@host.sub.domain...].
Имя хоста, подобласти или области, которое может быть сделано
" универсальным шаблоном" ("wild carded") использованием символа "*",
см. описание списков контроля доступа пользователей в главе 10.1.1
в ERS. Для установки или изменения требуется полная привилегия
администратора. Значение по умолчанию: корень на локальном хосте.
[встроенный тип: список контроля доступа]
max_running
Максимальное количество заданий, допустимых для выбора на
исполнение в любой момент. Служит рекомендацией для планировщика,
не должно превышается сервером. Формат: целый. [встроенный тип:
целый]
max_user_run
Максимальное количество заданий, принадлежащих одному пользователю,
которое допускается для исполнения одновременно из данной очереди.
Атрибут имеет консультативный характер для планировщика и не
может превышаться сервером. Формат: integer; значение по
умолчанию: отсутствует. [встроенный тип: integer]
max_group_run
Максимальное количество заданий, принадлежащих какому-нибудь
пользователю в одной группе, которые разрешается одновременно
исполнять из данной очереди. Имеет консультативный характер для
планировщика и обязательный для сервера. Формат: nteger; значение
по умолчанию: отсутствует. [встроенный тип: integer]
node_pack
Управляет отведением многопроцессорных узлов заданиям. Если этот
атрибут установлен на true, задания будут поступать на
многопроцессорные узлы с наименьшим количеством свободных процесоров.
Это упаковывает задания в возможно меньшие узлы, оставляя
многопроцессорные узлы свободными для заданий, которые требуют много
процессоров на узле. Если атрибут установлен на false, задания будут
рассеиваться по узлам, уменьшая конфликты с памятью между заданиями.
Если не установлен, задания упаковываются в узлы в порядке, в
котором узлы объявлены серверу в файле узлов.
Значение по умолчанию: не установлен. [встроенный тип: boolean]
operators
Список пользователей, имеющих привилегию пакетного оператора.
Формат списка идентичен с указанным выше менеджерским. Для установки
или изменения требует полной привилегии менеджера. Значение по
умолчанию: корень на локальном хосте. [встроенный тип: список
контроля доступа]
query_other_jobs
Установка этого атрибута управляет тем, может ли обычный
пользователь, не владелец задания, быть допущен делать
запрос о статусе или о выборке задания. Формат: boolean (см.
acl_host_enable); Требует полной менеджерской привилегии для
установки или изменения. Значение по умолчанию: false -
пользователям не разрешается опрашивать или выделять задания,
принадлежащие другим пользователям. [встроенный тип: boolean]
resources_available
Список ресурсов и их доступных количеств для заданий, исполняемых
данным сервером. Сумма ресурсов каждого типа,
используемых всеми заданиями на этом сервере, не может превышать
указанного общего количества. Справочный для планировщика, не
может превышаться сервером. Формат:
"resources_available.resource_name=value[,...]". [встроенный
тип: resource]
resources_cost
Коэффициенты стоимости различных типов ресурсов. Такие значения
используются при определении порядка освобождения членов множеств
синхронных заданий, см. раздел "Синхронизация запусков заданий".
По большей части эти значения чисто произвольны и имеют смысл
только как относительные значения между системами. "Цена" ресурсов,
запрошенных заданием, есть сумма произведений различных
resources_costs на количества каждого ресурса, востребованного
заданием. Нет необходимости присваивать цену каждому возможному
ресурсу. Это достаточно сделать только для тех, которые сайт хочет
рассматривать в планировании синхронных заданий. Формат:
"resources_cost.resource_name=value[,...]";
значение по умолчанию: отсутствует, цена ресурса не вычисляется.
[встроенный тип: список]
resources_default
Список по умолчанию количеств ресурсов, устанавливаемых в качестве
пределов для исполнения заданий на этом сервере, если лимит не
указан ни в задании ни по умолчанию в очереди. Формат:
"resources_default.resource_name=value[,...]";
значение по умолчанию: предела нет. [встроенный тип: resource]
resources_max
Максимальное количество каждого ресурса, которое может быть
запрошено одним заданием, выполняемом на этом сервере, если нет
значения resources_max, установленного для очереди, в которой
задание находится. Формат:
"resources_max.resource_name=value[,...]"; значение по умолчанию:
неограниченное употребление. [встроенный тип: resource]
scheduler_iteration
Время в секундах между итерационными попытками
пакетного сервера для планирования заданий на исполнение. При каждой
итерации сервер проверяет имеющиеся ресурсы и исполняемые задания,
чтобы определить, нельзя ли запустить новое задание. Такая проверка
происходит также, когда оканчивается исполняемое задание или новое
задание переходит в состояние ожидание в очереди на исполнение.
Формат: целое количество секунд; значение по умолчанию: 10 минут,
устанавливается {PBS_SCHEDULE_CYCLE} в server_limits.h.
[встроенный тип: integer, выдается как имя, определенное ниже]
scheduling
Действует, если сервер получает запрос на планирование заданий от
планировщика PBS. Если true, планировщик будет вызван, как
требуется. Если false, планировщик не вызывается и ни одно задание
не поступает на исполнение, пока серверу не поручит это оператор
или администратор. Установка или переустановка этого атрибута на
true приводит к немедленному вызову планировщика.
Более подробную информацию см. в разделе 4.1. Взаимодействие
планировщика-сервера, в Руководстве администратора PBS. Формат:
boolean (см. acl_host_enable); значение по умолчанию:
значение опции -a при вызове сервера, если -a не указано, значение
берется из предыдущего захода сервера. Если никогда не
устанавливалось, значение есть "false". [встроенный тип: boolean]
system_cost
Произвольное значение для умножения на него цены ресурса любого
задания, обрабатываемого этим сервером с целью выбора первого
освобождаемого члена синхронного множества, см. resources_cost и
и раздел 3.2.2, "Синхронизация запусков заданий." [значение
по умолчанию: отсутствует, цена ресурса не вычисляется], [встроенный
тип: список]
В начало страницы
Следующие атрибуты могут только читаться, они поддерживается сервером и не
могут изменяться клиентами.
resources_assigned
Общее количество определенных типов ресурсов, отводимых для
исполняемых заданий. [встроенный тип: resource]
server_name
Имя сервера, которое совпадает с именем хоста. Если сервер слушает
нестандартный порт, к нему дописывается через двоеточие номер порта.
Например:
host.domain:9999. [встроенный тип: цепочка]
server_state
Текущее состояние сервера:
Active Сервер работает и будет вызывать планировщик заданий при
необходимости планировать задания на исполнение.
Idle Сервер работает, но не будет вызывать планировщика заданий.
Планирование
Сервер работает и имеется незаконченный вызов планировщика
заданий.
Terminating
Сервер закончил работу. Никакие новые задания не будут
планироваться.
Terminating, Delayed
Сервер закончил работу в отложенном режиме. Сервер не будет
выполнять новые задания и завершит свою работу после завершения
текущих заданий.
[встроенный тип: integer]
state_count
Общее количество заданий во разных состояниях, которыми управляет
сервер. [встроенный тип: special, массив целых]
total_jobs
Общее количество заданий, управляемых сервером. [встроенный тип:
целое]
PBS_version
Номер выпуска версии сервера. [встроенный тип : цепочка]
В начало страницы
Публичные атрибуты очереди можно изменять по желанию клиентов. Клиент должен
быть пользователем с привилегиями администратора (менеджера) или оператора.
Некоторые атрибуты для изменения требуют полных администраторских полномочий.
Следующие атрибуты применим к очередям обоих типов:
acl_group_enable
Этот атрибут при значении true предписывает серверу использовать
групповой список очереди для контроля доступа acl_groups. Формат:
boolean, "TRUE", "True", "true", "Y", "y", "1", "FALSE", "False",
"false", "N", "n", "0"; значение по умолчанию: false = disabled.
[встроенный тип: boolean]
acl_groups
Список, который разрешает или запрещает постановку в очередь заданий,
принадлежащих членам указанных групп. Группы в списке есть группы
серверского хоста. См. раздел 10.1, Санкционирование, в PBS
External Reference Specificaiton. Формат:
"[+|-]group_name[,...]"; значение по умолчанию: разрешено всем
группам. [встроенный тип: список контроля доступа]
acl_host_enable
Атрибут при значении true предписывает серверу использовать список
доступа acl_hosts access. Формат: boolean (см. acl_group_enable);
значение по умолчанию: disabled.
[встроенный тип: boolean]
acl_hosts
Список хостов, которые могут ставить задания в очередь. См. раздел
10.1, Санкционирование, в PBS External Reference Specificaiton.
Формат: "[+|-]hostname[...]"; значение по умолчанию: разрешено всем
хостам.
[встроенный тип: список контроля доступа]
acl_user_enable
Этот атрибут при значении true предписывает серверу использовать
список доступа acl_users для этой очереди. Формат: boolean (см.
acl_group_enable); значение по умолчанию: disabled.
[встроенный тип: boolean]
acl_users
Список пользователей, которым разрешено или запрещено ставить
задания в эту очередь. См. раздел 10.1, Санкционирование, в PBS
External Reference Specificaiton. Формат: "[+|-]user[@host][,...]";
значение по умолчанию: разрешено всем пользователям. [встроенный
тип: список контроля доступа]
enabled
Очередь будет или не будет принимать новые задания. При false
очередь "не действует" и не будет принимать задания. Формат:
boolean (см. acl_group_enable); значение по умолчанию: disabled.
[встроенный тип: boolean]
from_route_only
В случае true эта очередь не принимает задания, кроме тех, которые
направлены (routed) сервером из локальной маршрутной очереди.
Это используется для форсирования пользователя отдавать задания
в маршрутную очередь, используемую для распределения заданий по
другим очередям на основании лимитов ресурсов для задания.
Формат: boolean; значение по умолчанию: disabled. [встроенный тип:
boolean]
max_queuable
Максимальное количество заданий, одновременно располагающихся в
очереди. Формат: целый; значение по умолчанию: не ограничено.
[встроенный тип: integer]
max_running
Максимальное количество заданий, которое допускается для отбора из
этой очереди для маршрутизации или исполнения в любое заданное время.
Для маршрутной очереди, если установлено, осуществляется
принудительно сервером. Для очереди на исполнение этот атрибут есть
рекомендация для Планировщика и не принудителен для сервера. Формат:
integer. [встроенный тип: integer]
Priority
Приоритет этой очереди по отношению к другим очередям того же типа
на данном сервере. Может влиять на отбор заданий для
исполнения/маршрутизации. Рекомендателен для Планировщика, сервером
не используется. Формат: integer. [встроенный тип: integer]
queue_type
Тип очереди: исполнительная или маршрутная. Формат: "execution",
"e", "route", "r". Этот атрибут должен быть явно установлен.
[встроенный тип: цепочка]
resources_max
Максимальное количество каждого ресурса, которое может быть запрошено
отдельным заданием в этой очереди. Значение для очереди заменяет
любой максимальный лимит на уровне сервера. Формат:
"resources_max.resource_name=value", см. qmgr(1B); значение по
умолчанию: неограниченное использование. [встроенный тип: resource]
resources_min
Минимальное количество каждого ресурса, которое может быть запрошено
заданием в этой очереди. Формат: см. resources_max, значение по
умолчанию: нулевое употребление. [встроенный тип: resource]
resources_default
Список количеств ресурсов по умолчанию, которые устанавливаются в
качестве пределов для заданий в этой очереди, в которых лимит не
указан. Формат: "resources_default.resource_name=value", см.
qmgr(1B); значение по умолчанию: нет; если не установлен,
предел по умолчанию для задания определяется по первому из следующих
атрибутов, которые установлены: серверский resources_default,
resources_max для очереди, серверский resources_max. Если ни один из
них не установлен, задание имеет неограниченное использование
ресурса. [встроенный тип: resource]
started
Задания могут планироваться на исполнение из этой очереди. Если
false, очередь считается "stopped." Рекомендателен для Планировщика,
не может нарушаться сервером. [значение по умолчанию: false, но
зависит от интерпретации планировщика] Формат: boolean (см.
acl_group_enable). [встроенный тип: boolean]
Следующие атрибуты применяются только в исполнительных очередях:
checkpoint_min
Определяет минимальный интервал времени cpu в минутах, который
допустим между контрольными точками задания. Если пользователь указал
время, меньшее этого значения, то он используется вместо указанного
пользователем. Формат: integer; значение по умолчанию: никакого
минимума. [встроенный тип: integer]
resources_available
Список ресурсов и их количеств, доступных для заданий, исполняющихся в
в этой очереди. Сумма ресурсов каждого типа по всем заданиям,
исполняющимся из этой очереди, не может превышать общего количества,
указанного в списке. Консультативен для планировщика,
не может нарушаться сервером. Формат:
"resources_available.resource_name=value", см. qmgr(1B).
[встроенный тип: resource]
kill_delay
Количество времени задержки между посылками SIGTERM и SIGKILL,
когда команда qdel выдана для снятия исполняемого задания.
Format: целое число секунд; значение по умолчанию: 2 секунды.
[встроенный тип: integer]
max_user_run
Максимальное количество заданий, принадлежащих одному пользователю,
которые разрешается запускать из этой очереди одновременно. Этот
атрибут консультативен для Планировщика и не может нарушаться
сервером. Формат: integer; значение по умолчанию: отсутствует.
[встроенный тип: integer]
max_group_run
Максимальное количество заданий, принадлежащих пользователям одной
группы, которые разрешается запускать одновременно из этой очереди.
Атрибут имеет консультативный характер для планировщика и не может
нарушаться сервером. Формат: integer; значение по умолчанию:
отсутствует. [встроенный тип: integer]
Следующие атрибуты применяются только в маршрутных (routing) очередях:
route_destinations
Список мест назначения, к которым задания могут быть отправлены.
[значение по умолчанию: отсутствует, должно быть установлено по
крайней мере одно правильное назначение]
[встроенный тип: массив цепочек]
alt_router
Если true, то на таком сайте используется альтернативная маршрутная
функция для определения места назначения заданий, отправляемых из
этой очереди. В противном случае, по умолчанию используется
маршрутизатор типа round-robin. Формат: boolean (см.
acl_group_enable); значение по умолчанию: false. [встроенный тип:
boolean]
route_held_jobs
Если true, задания с отметкой типа hold могут направляться
из этой очереди. Если false, задержанные задания не
маршрутизируются. Формат: boolean (см. acl_group_enable);
значение по умолчанию: false. [встроенный тип: boolean]
route_waiting_jobs
Если true, задания с будущим атрибутом execution_time могут
направляться из этой очереди. Если false, они не должны направляться.
Формат: boolean (см. acl_group_enable); значение по умолчанию:
false. [встроенный тип: boolean]
route_retry_time
Промежуток времени между повторными пробами маршрута. Обычно
используется при отказе сети между серверами. Формат:
целое число секунд; значение по умолчанию: PBS_NET_RETRY_TIME}
(30 секунд). [встроенный тип: integer]
route_lifetime
Максимальное время нахождения задания в очереди на маршрутизацию.
Если оно не было отправлено за указанное время, задание абортируется.
Если время не установлено или установлено на ноль (0), время
пребывания в очереди не ограничено. Формат: целое число секунд; по
умолчанию не ограничено.
[встроенный тип: integer]
В начало страницы
Следующие единицы данных есть атрибуты очереди, предназначенные только для
чтения. Они видимы для клиентов, но изменениям не подлежат
Ко всем видам очередей относятся:
total_jobs
Количество заданий в очереди в данное время.
[встроенный тип: integer]
state_count
Общее количество заданий в очереди в каждом состоянии.
[встроенный тип: специальный, массив целых]
Эти только читаемые атрибуты применимы к исполнительным очередям:
resources_assigned
Общее количество определенных типов ресурсов, отведенных заданиям,
исполняемым из этой очереди. [встроенный тип: resource]
В начало страницы
Пакетное задание имеет атрибуты, показанные в следующем ниже списке.
Атрибуты, отмеченные номерами разделов, требуются в POSIX 1003.2d:
Если атрибут не установлен, подразумевается указанное значение по умолчанию.
Account_Name
Используется для учетных записей на некоторых хостах.
Сервер может не использовать цепочки, но возможность этого должна быть
предусмотрена. Формат: цепочка; значение по умолчанию: нет,
не используется, [встроенный тип: цепочка]
Checkpoint
Если поддерживается реализацией сервера и операционной системой хоста, то
атрибут checkpoint определяет, когда установка контрольных точек будет
производиться для задания системой PBS. Легальные значения для
контрольных точек описаны в командах qalter и qsub. Формат:
цепочки "n", "s", "c", "c=mmmm"; значение по умолчанию: "u", что
значит: не указано. [встроенный тип: цепочка]
depend Тип зависимости между заданиями, указанный владельцем задания. Формат:
"type:jobid[,jobid...]"; значение по умолчанию: нет зависимостей.
[встроенный тип: special, dependency]
Error_Path
Окончательный путь к файлу, содержащему стандартный поток ошибок от
задания. См. детали в описании команд qsub и qalter. Формат:
"[hostname:]pathname"; Значение по умолчанию: (job_name).e(job_number).
[встроенный тип: список]
Execution_Time
Время, по достижении которого задание можно исполнять. Время указывается
количеством секунд после Epoch. Если этот момент еще не достигнут,
задание не планируется на исполнение и про него говорится, что оно
находится в состоянии ожидания. Формат: "[[CCwYY]MMDDhhmm[.ss]";
значение по умолчанию: время 0, задержки нет. [встроенный тип: integer]
group_list
Список group_names@hosts, определяющий группу, в которой задание
исполняется на данном хосте. [встроенный тип: массив цепочек]. Когда
задание должно поступать на исполнение, сервер изберет групповое имя по
следующему упорядоченному набору правил:
1. Выберет групповое имя из списка, для которого имя хоста соответствует
имени исполнительного хоста.
2. Выберет групповое имя, которое не имеет связанного с ним имени хоста,
"wild card name" (трафаретное имя)
3. Использует группу login для пользовательского имени, под которым
задание будет исполняться.
Формат: "group_name[@host][,group_name[@host]...]".
[встроенный тип: массив цепочек]
Hold_Types
Множество задержек, применяемое в настоящее время к заданию. Если
множество не пусто, задание не будет планироваться к исполнению и про
него говорят, что оно находится в задержанном (hold) состоянии. Заметим,
что состояние hold имеет приоритет перед состоянием ожидания (wate).
Формат: цепочка, составленная из букв 'u', 's', 'o';
значение по умолчанию: no hold. [встроенный тип: цепочка]
Job_Name
Имя, присвоенное заданию по команде qsub или qalter. Формат: цепочка до
15 знаков, первый из них буква; значение по умолчанию: базисное имя
сценария задания или STDIN. [встроенный тип: цепочка]
Join_Path
Если атрибут Join_Paths есть {TRUE}, то стандартный поток ошибок от
задания будет смешиваться (перемежаться) с стандартным выходным потоком
и располагаться в файле, определенном атрибутом Output_Path. Атрибут
Error_Path поддерживается, но игнорируется. Формат: boolean, значения
могут задаваться как "True", "TRUE", "true", "Y", "y", "1", "False",
"FALSE", "false", "N", "n", "0"; значение по умолчанию: false.
[встроенный тип: цепочка]
Keep_Files
Если Keep_Files содержит значения "o" {KEEP_OUTPUT} и/или "e"
{KEEP_ERROR}, то соответствующие потоки пакетного задания будут задержаны
до окончания задания на исполнительном хосте. Keep_Files подавляет
атрибуты Output_Path и Error_Path. Формат: "o", "e", "oe" или "eo";
значение по умолчанию: не задерживать, возвращать файлы на представивший
хост. [встроенный тип: цепочка]
Mail_Points
Определяет, при каких изменениях состояния сервер должен отправлять
сообщения о задании. Формат: цепочка, составленная из букв 'a' для
abort, 'b' для beginning, и значение по умолчанию: 'a',
посылаемое при абортировании задания. [встроенный тип: цепочка]
Mail_Users
Множество пользователей, к кому может быть отправлено сообщение при
изменении состояния задания. Формат:
"user@host[,user@host]"; значение по умолчанию: только владелец задания.
[встроенный тип: массив цепочек]
Output_Path
Финальное имя пути к файлу, содержащему стандартный выходной поток от
задания. Детали см. в описании команд qsub и qalter. Формат: см.
error_path, значение по умолчанию: (job_name).o(job_number).
[встроенный тип: string]
Priority
Приоритет в планировании заданий, присваиваемый пользователем. Формат:
"[+|-]nnnnn"; значение по умолчанию: неопределенно. [встроенный тип:
integer]
Rerunable
Флажок перезапуска, устанавливаемый пользователем. Формат: "y" или "n",
см. Join_Path; значение по умолчанию: y, задание перезапускаемо.
[встроенный тип: boolean]
Resource_List
Список ресурсов, требуемых заданию. Список ресурсов есть множество
цепочек вида name=value. Значения name и value зависят от сервера.
value определяет также лимит на использование этого ресурса. Если не
установлен, то количества ресурса может быть определено очередью или
установлено по умолчанию в сервере администратором. Значение по умолчанию:
не используется или никакого лимита на определенный ресурс. [встроенный
тип: resource]
Shell_Path_List
Множество абсолютных путей к программе обработки файла сценария задания.
Список в формате: "path[@host][,path[@host]...]". Если он пуст, то
будет использоваться оболочка пользовательского регистрационного журнала
на исполнительном хосте. Значение по умолчанию: пусто, login shell.
[встроенный тип: массив цепочек]
stagein
Список файлов, которые должны быть установлены (staged in) до выполнения
задания. Формат: local_path@remote_host:remote_path
[встроенный тип: массив цепочек]
stageout
Список файлов, которые должны быть возвращены (staged out) после
исполнения задания. Формат: local_path@remote_host:remote_path
[встроенный тип: массив цепочек]
User_List
Список user@hosts, который определяет имя пользователя, под которым
выполняется задание на данном хосте. [встроенный тип: массив цепочек]
Когда задание должно поступать на исполнение, сервер выбирает имя
пользователя
из этого списка согласно следующему упорядоченному набору правил:
1. Выбирает из списка имя пользователя, у которого ассоциированное имя
хоста есть имя исполнительного хоста.
2. выбрать имя пользователя, которое не имеет связанного с ним имени
хоста, "универсальное имя" ("wild card name.")
3. Использовать Job_Owner в качестве пользовательского имени.
Значение по умолчанию: имя владельца задания. [встроенный тип: массив
цепочек]
Variable_List
Это -- список переменных окружения, передаваемый вместе с пакетным
запросом на постановку задания в очередь. Формат:
"name=value[,name=value...]". [встроенный тип: массив цепочек]
В начало страницы
Следующие атрибуты требуют для установки системных, менеджерских или
операторских привилегий. Они видимы для клиентов в зависимости от их
привилегий.
comment
Атрибут для выдачи комментариев системы относительно задания. Видим для
всех клиентов. Формат: любая цепочка. Значение по умолчанию: отсутствует.
[встроенный тип: цепочка]
sched_hint
Этот атрибут присутствует, когда задание есть член множества синхронной
зависимости. Он устанавливается, когда задержка (hold) снимается с
задания. Значение есть {SYNC_SCHED_HINT_FIRST}:
(1) когда первое задание из множества освобождается для планирования.
Это есть рекомендация для Планировщика уменьшить приоритет задания. Это
удерживает пользователя от попыток "обмануть" планировщик.
Атрибут устанавливается на {SYNC_SCHED_HINT_OTHER} (2) для всех других
заданий множества, когда они становятся планируемыми. Это должно
рассматриваться как совет планировщика увеличить их приоритет для
обеспечения их исполнения в то же время, как и ранее спланированные
задания из того же множества. [Этот атрибут видим только для пакетного
администратора.] [тип: integer]
В начало страницы
Следующие атрибуты предназначены только для чтения, они устанавливаются
сервером и видимы клиентам, но не могут ими устанавливаться. Некоторые из них
видимы только привилегированным клиентам.
alt_id Для некоторых систем, таких как Irix 6.x, имеющих Array Services,
идентификатор сеанса недостаточен для слежения за тем, какие процессы
принадлежат заданию. Там, где требуется другой идентификатор, он
записывается в этот атрибут. Если установлен, он будет также записываться
в учетную запись окончания задания.
Для Irix 6.x с Array Services атрибут alt_id устанавливается на
обработчика Array Session (ASH), отведенного для задания. [встроенный
тип: цепочка]
ctime
Время создания задания. [встроенный тип: integer, (секунды с момента
epoch)]
etime
Время, когда задание становится готовым для исполнения, т.е. когда
поступает в исполнительную очередь. [встроенный тип: integer, (секунды
с момента epoch)]
exec_host
Если задание исполняется, атрибут устанавливается на имя хоста, на
котором оно исполняется. [встроенный тип: цепочка]
egroup
Если задание поступило в очередь на исполнение, этот атрибут
устанавливается на групповое имя, под которым задание должно исполняться.
[Этот атрибут доступен только пакетному администратору.] [встроенный
тип: цепочка]
euser
Если задание поставлено в очередь на исполнение, этот атрибут
устанавливается на имя пользователя, под которым задание должно
исполняться. [Этот атрибут доступен только пакетному администратору.]
[встроенный тип: цепочка]
hashname
Имя, используемое как базовое для различных файлов, таких как файл
заданий, файл сценария, файл стандартного выхода или для ошибок
задания. [Этот атрибут доступен только пакетному администратору.]
[тип: цепочка]
interactive
True, если задание есть интерактивное задание PBS. Формат: boolean, см.
Join_Paths; значение по умолчанию: false. [встроенный тип: long]
Внутренне, это значение есть номер порта, полученный по команде qsub,
когда задание было представлено.
Job_Owner
Регистрационное имя пользователя на хосте представления, который
представил пакетное задание. [встроенный тип: цепочка]
job_state
Состояние задания.
E для выхода, выполнение задания закончилось, с ошибками или без,
и пакетная система производит
подчистку после исполнения.
H для задержанных, когда одно или более holds было применено к
заданию.
Q задание находится в исполнительной или маршрутной очереди.
Оно не находится в состоянии задержки или ожидания.
R Running. Задание находится в исполнительной очереди и передано
на исполнение.
S Suspend (только для заданий, исполняющихся на Unicos), задание
исполнялось и было остановлено. Задание удерживает отведенные ему
ресурсы, но не использует циклов центрального процессора или
walltime.
T Transiting, задание находится в процессе маршрутизации или
переносится на новое место назначения.
W Waiting, задание не задержано, но атрибут Execution_Time содержит
еще не исчерпанное время.
[встроенный тип: character]
mtime Время, когда задание в последний раз модифицировалось, изменяло
состояние или место. Внутренне хранится в виде секунд с момента
epoch. [встроенный тип: integer]
qtime Время поступления задания в текущую очередь. Внутренняя форма --
число секунд с момента epoch. [встроенный тип: integer]
queue
Имя очереди, в которой задание находится в настоящее время. [встроенный
тип: цепочка]
queue_rank
Порядковый, не последовательный, номер позиции задания в очереди.
Предусмотрен в помощь планировщику. [Этот атрибут доступен
только пакетному менеджеру.] [встроенный тип: integer]
queue_type
Идентификация типа очереди, в которой задание находится в настоящее
время. Это поддерживается в помощь планировщику. [Этот атрибут
доступен только пакетному менеджеру.] Формат: Буква "E" или буква
"r". [встроенный тип: character]
resources_used
Количество ресурсов, использованных для задания. Предусмотрено как часть
информации о статусе задания, если задание исполняется. [встроенный
тип: resource]
server
Имя сервера который в настоящее время ведет задание. [встроенный тип:
цепочка]
session_id
Если задание исполняется, устанавливается на идентификатор сеанса
первой исполняемой задачи. [встроенный тип: целый]
substate
Численный индикатор подсостояния задания. Сервер PBS использует
подсостояние внутренним образом . Атрибут видим для
привилегированных клиентов, таких как планировщик. Формат:interger.
[встроенный тип: long nteger]. Значения определены в головном
файле job.h. См. в разделе ERS об установке (file staging)
о том, для чего это сделано доступным для планировщика.