Просмотр очереди задач ( команда mqinfo)

Очередь задач обслуживается планировщиком в соответствии с основными принципами построения очередей. Планировщик формирует информацию о текущем состоянии, посмотреть которую можно по команде mqinfo. Данная команда не имеет параметров, информация, выдаваемая ею, выглядит следующим образом:

 Current time: Mon Mar 22 13:10:07 2003 – текущие дата и время
 Queue state at Mon Mar 22 13:06:09 2003 – дата и время на которое выдается состояние очереди
 Current schedule: 2 – номер текущего расписания
 Accumulation period: 168 hours – учетный период

 --- 22.03.00 07:30: R=1 total – 32, debug – 5/15, packet –300, priority scale –(120 300) – действующий режим
 img1.3: guest 6.3 15(tsk1) 150/15+1 16 >: 22.03.02 13:22 – стартовавшая задача img1.3
 --queue -- – разделитель считающихся и ждущих задач
 tnet.7 : ant 0.2 1* 10 15/15 ~16 <:20.03.02 12:33 – задача tnet.7, стоящая в очереди
 img1.4 : guest 6.5 0* 15(tsk1) 150/15+1 b~26 <: 22.03.02 12:48 – задача img1.4, стоящая в очереди
 ---22.03.00 19:00: R=5 total – 32, debug - 0/15, packet - 600, priority scale - (10000) – новый режим (включится в 19:00)
 tnet.3 : ant 6.4 1* 20 500/500 ~354 <:22.03.02 12:34 – задача tnet.3, стоящая в очереди
 ---23.03.00 07:30: R=1 total – 32, debug - 16/15, packet - 300, priority scale - (120 300) – новый режим
 tnet.1 : ant 7.1 1* 1 15/15 A~~~ <:20.03.02 14:20 – отложенная задача tnet.1

 Free: 5 proc Available: 20 Locked: 12 – сведения о свободных, доступных и заблокированных процессорах
 ant: Inf:3 R=1 run=0 wait=3/5 all= 3/7 *1.00 Sr/Sf=0/26 – суммарная информация по пользователю ant
 guest: Inf:3 R=1 run=1 wait=1/5 all=2/7 *1.00 Sr/Sf=16/310 – суммарная информация по пользователю guest

В заголовке выдачи сообщается, в какой момент сформирована данная информация (Queue state at) . Кроме того, выдается номер текущего расписания (Current schedule) и учетный период (Accumulation period), за который производится суммирование времени счета завершившихся задач по каждому пользователю.
Если очередь блокирована (заморожена), то это отображается словом Hold при выдаче:

 Queue state at Wed Mar 22 12:40:07 2000


 Current schedule: 2 Hold
 Accumulation period: 168 hours

 --- 22.03.00 07:30: R=3 total – 32 debug – 16/15, packet – 300, priority scale - (120 300)
 --- 22.03.00 19:00: R=2 total – 32 debug - 0/15, packet - 600, priority scale - (10000)
 --- 23.03.00 07:30: R=2 total – 32 debug - 16/15, packet - 300, priority scale - (120 300)
 tnet.7 : ant 1* 10 15/15 H~~~ <:Mon Mar 22 13:31:09 2000
 tnet.3 : ant 1* 24 500/500 H~~~ <:Mon Mar 22 20:31:09 2000
 tnet.1 : ant 1* 1 15/15 H~~~ <:Mon Mar 20 20:31:09 2000

Информация о режимах начинается с ‘---‘ и содержит:

  • дату и время включения режима;
  • после R= – битовую маску классов к которым принадлежит данный режим (“1” означает нулевой класс, “2” —1-й класс, “3” —1-й и 2-й классы,“fc” — классы со 2-го по 7-й включительно);
  • после total – общее число планируемых процессоров;
  • после debug – количество процессоров, отведенное под отладочные задачи/максимальное время (в минутах) для отладочных задач;
  • после packet – максимальное время (в минутах) для пакетных задач;
  • после priority scale – границы приоритетов.

Следующий пример демонстрирует режим, который включается 22 марта 2000 г. в 7 часов 30 минут и имеет следующие параметры: всего планируется 32 процессора, максимальное время для отладочных задач – 15 минут, для пакетных – 300 минут, при этом под отладочные задачи отведено 16 процессоров, эти 16 процессоров не могут занимать пакетные задачи, границы приоритетов определяют два приоритета – высокий для пользователей, считавших менее 180 минут, и низкий - для всех остальных. Данный режим относится лишь к нулевому классу (R=1), т.е. только те пользователи, которым разрешено считать в режимах нулевого класса, могут запускать здесь свои задачи. У администратора есть возможность создать режим, в котором всем пользователям режимов других классов дано разрешение запускать отладочные задачи. В настоящее время этот флаг при выдаче информации о режимах не отражается.

 ---22.03.00 07:30: R=1 total–32 debug-16/15, packet–300, priority scale-(180)

Информация о считающихся задачах содержит:

  • имя задачи;
  • имя пользователя;
  • составной индикатор порядка выделения ресурсов: номер (0 - 7) очереди при выделении ресурсов и (через ‘.’) номер в списке задач — чем меньше номер очереди (или номер в списке задач, если номер очереди совпадает), тем раньше планировщик пытался выделить ресурс данной задаче (так задача с порядком 5.3 рассматривалась планировщиком раньше, чем задача с порядком 5.12, и позже, чем задача с порядком 0.38);
  • количество оставшихся повторов счета;
  • количество процессоров, занимаемых задачей;
  • заключенное в скобки имя ресурса ЛДП, если он используется задачей;
  • остаток времени счета в минутах;
  • квант счета в минутах;
  • число минут, зарезервированных для завершения, если есть;
  • количество минут до предполагаемого завершения задачи;
  • предполагаемое время завершения (после >:).

Следующий пример демонстрирует считающуюся задачу img1.3 пользователя guest. Задача занимает 15 процессоров, используя ресурс локального дискового пространства с именем tsk1, считается последний раз (более повторов не будет), оставшееся время счета – 150 минут, задача фоновая с квантом 15 минут, будет перепланирована системой через 15 минут 2 августа 2003 года в 18 часов 3 минуты. Задаче будет предоставлена 1 минута для завершения очередного кванта, если следующий квант может быть выдан задаче лишь после некоторого перерыва.

 img1.3 : guest 6.3 0* 15(tsk1) 150/15+1 16 >:03.08.02 18:03

Информация о стоящих в очереди задачах отличается от информации о считающихся задачах тем, что вместо количества минут до завершения выдается код (причины) ожидания и количество минут до предполагаемого старта (разделенные символом ~), а вместо времени завершения — время постановки в очередь (после <:). Например:

 img1.4 : guest 6.5 0* 15(tsk1) 150/15+1 b~16 <:03.08.02 14:33

Следующая выдача говорит о том, что задача находится в процессе запуска:

 img1.3 : guest 6.3 0* 15(tsk1) 150/15+1 starting

Следующая выдача говорит о том, что задача находится в процессе завершения:

 img1.3 : guest 6.3 0* 15(tsk1) 150/15+1 finishing

Задача может быть заморожена оператором или системой. В этом случае вместо времени, оставшегося до старта будет проставлено ~~~, например:

 img1.2 : ant 6.7 1* 16 300/300 A~~~ <:03.08.02 14:03

Как видим, индикатор блокированной задачи (~~~) предваряется буквенным кодом, отображающим причину блокировки или ожидания задачи. Ниже приводится расшифровка буквенных кодов.

Коды причин ожидания вмешательства со стороны администратора или пользователя:

A — задача заблокирована администратором;
Н — очередь в целом заблокирована администратором;
O — рассматриваемых планировщиком режимов не хватает, чтобы сделать вывод о возможности или невозможности запуска задачи в одном из них;
P — в текущем расписании для данного пользователя запрещено запускать задачи с таким числом процессоров;
R — резервная задача не может быть запущена ни в одном из рассматриваемых планировщиком режимов;
T — квант задачи превышает время пакетных задач всех рассматриваемых планировщиком режимов;
U — задача заблокирована пользователем.

Коды причин ожидания изменения ситуации (очередного цикла планирования):

e — старт отложен из-за несущественной ошибки при запуске;

Коды причин ожидания, приводящих к откладыванию старта на вполне определенный срок:

b — занятость процессоров считающимися задачами;
d — при старте задача не оставила бы в одном из режимов нужного для отладочных задач количества процессоров на слишком длительное время;
m — в одном из режимов пользователю запрещено запускать задачи;
p — при запуске задача отодвинула бы старт более приоритетной задачи;
t — квант задачи превышает время пакетных задач одного из режимов;

После информации о задачах выдается количество свободных на данный момент процессоров (Free), а также, сколько имеется доступных для счета (Available) и заблокированных (Locked) процессоров. :

 Free: 6 proc   Available: 17   Locked: 9

Затем выдается суммарная информация по каждому пользователю, формировавшему задачи в учетный период времени:

  • login-имя;
  • информация о запрете (Block:) счета (Q) или запуска (R) задач (если он установлен администратором);
  • степень подробности выдачи информации (Inf:);
  • шкала классов режимов (R=), в которых разрешено запускать задачи, в виде 16-го числа;
  • после run - количество считающихся задач;
  • после wait - количество ждущих задач/ограничение на количество ждущих задач;
  • после all - суммарное количество задач в очереди/ограничение на суммарное количество задач в очереди;
  • коэффициент умножения при вычислении цены задачи;
  • после Sr/Sf - суммарная стоимость считающихся задач/суммарная стоимость закончившихся задач;

Например,

 guest: Inf:2 run=1 wait=0/1 all=1/1 *1.00 Sr/Sf=15/14
 u1125: Inf:2 R=1 run=0 wait=0/5 all=0/7 *1.00 Sr/Sf=0/365
 u1310: Block:RQ Inf:2 R=1 run=0 wait=1/5 all=1/7 *1.00 Sr/Sf=0/0
 u0319: Inf:2 R=3 run=0 wait=0/5 all=0/7 *1.00 Sr/Sf=0/88
 u1305: Block:R Inf:2 R=1 run=1 wait=2/5 all=3/7 *1.00 Sr/Sf=0/0

Здесь показано, что пользователю u1310 запрещено ставить задачи в очередь, задачи его и пользователя u1305, стоящие в очереди, заморожены; всем пользователям информация выдается со степенью подробности 2 (т.е. вся за исключением имен задач других пользователей и информации о пользователях, которые в учетный период не считали и не имеют задач в очереди); всем пользователям разрешено запускать задачи в режимах класса 0, а пользователю u0319 еще и в режимах класса 1.