Мы используем SGE (Sun Grid Manager). У нас есть некоторые ограничения на общее количество одновременных заданий от всех пользователей.
Я хотел бы знать, можно ли установить временное добровольное ограничение на количество одновременно выполняемых заданий для конкретного пользователя.
Например пользователь dave
собирается отправить 500 заданий, но он хотел бы, чтобы одновременно выполнялось не более 100, например поскольку он знает, что рабочие места выполняют много операций ввода-вывода, которые застревают в файловой системе (к сожалению, это правда).
Это возможно?
Вы можете определить комплекс с помощью qconf -mc
. Назовите это как-то вроде high_io
или как хотите, и установите в поле расходных материалов значение YES
. Тогда либо в глобальной конфигурации с qconf -me global
или в конкретной очереди с qconf -mq <queue name>
устанавливать high_io=500
в сложных значениях. Теперь попросите своих пользователей указать -l high_io=1
или сколько «жетонов» вы хотите, чтобы они использовали. Это ограничит количество одновременных заданий тем, что вы установили для комплексного значения.
Другой способ сделать это - квоты. Добавить квоту с qconf -arqs
это выглядит примерно так:
{
name dave_max_slots
description "Limit dave to 500 slots"
enabled true
limit users {dave} to slots=500
}