• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Об агентах по расписанию

  • Автор темы Eugenus
  • Дата начала
E

Eugenus

Привет всем! Кто силен в теории, подскажите, как ведет себя Domino случае периодического запуска агента, который не успевает отрабатывать ко времени повторного запуска ? Ставит в очередь и дожидается отработки либо запускает сразу агент в отдельном потоке ?
У меня есть кусок кода, который принудительно запускает агент через каждые 30 секунд, который далеко не всегда успевает отработать за этот интервал, при этом нагрузка на сервер вроде бы остается постоянной и вообще все работает замечательно. Такое впечатление, что домино завершает работу недовыполнившегося агента и запускает его по новой. А вы что думаете по этому поводу ?
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
а причем тут агент по расписанию то, если его на деле другой агент запускает принудительно?
по правильному агент должен отрабатываться и запускаться сам, спустя время после своего завершения он должен опять запускаться
если же его постоянно пинает другой агент то необходимо учесть эту логику и заставлять агент заканчиваться если он не уложился в дозволенное время, иначе потом дважды запущенный агент будут вдвоём тер*цензура*ить один и тот же док - и посыпется ваша логика
 
E

Eugenus

Полегче) Ничего не посыпется....Я вот тут всего лишь интересовался - действительно ли агент завершается, если его пинают повторно ?
А если просто подходит его время запуска - дожидается ? Что-то я сомневаюсь насчет лотусной многопоточности...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Полегче) Ничего не посыпется....Я вот тут всего лишь интересовался - действительно ли агент завершается, если его пинают повторно ?
А если просто подходит его время запуска - дожидается ?
зависит от очереди агентов и количество одновременных потоков
если у вас 2 и более потока AMGR то есть вероятность, что агенты начнут работать паралельно, так как может получится ситуацию когда в очереди агент за агентом и пойдёт одновременный запуск
если агентменеджер лишь один то будет "дождаться" но минус в том, что очередь агентов будет разгружаться медленно
 
E

Eugenus

Сорри, насчет агент менеджер - это ведь серверная задача, как их может быть несколько ? Это где-то настраивается ?
 
E

Eugenus

Вообще у меня есть основания предполагать, что при принудительном запуске агент менеджер не ставит выполнение в очередь, а перезапускает агент в одном-едиственном потоке. Мой агент несколько раз лопатит коллекцию документов в цикле и почему-то иной раз существенно подтормаживает на взятии тех либо иных доков, не укладываясь в отведенный пятиминутный интервал....При повторном запуске вся коллеция быстро проходит обработку. Если бы имела место неограниченная многопоточность, нагрузка на сервер возросла бы неимоверно, если бы AMGR ставил их в очередь - принудительный запуск был бы до одного места, очередь бы разгружалась медленно, как и заметил тОха. Но налицо совсем иное - такое впечатление, что агент просто перезапускается. При этом не суть важно, отработает ли агент всю коллецию до конца либо остановится на каком-то доке, поскольку неотработанные доки подхватятся на следующем запуске, важно лишь, чтобы он не застревал на середине обработки какого-то дока, внеся в него какие-либо изменения, которые сделают невозможной дальнейшую работу с ним при след. запуске. Но в моих скриптах это исключено и по тьфу-тьфу, пока все работает стабильно...
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Eugenus
это вам так кажется, и как вы проверяли нагрузку на сервер то?
подозреваю что колекцию вы формируете db.Search а значит одновременное срабатывание нескольких агентов на сече приведет к их резкому замедлению работы - проверял ни один раз, суть в том, чтобы выполнить сечь нужно прошуршать винтами, а проверить нагрузку на винты можно лишь через очередь I/O ни проц ни озу в єтом подходе не задействованы вообще
вот и получается что два одновременных сеча приведут к задержке в 10 мину, а если их запустить последовательно то каждый отработает секунд за 5

если бы они отрабатывали последовательно то "и почему-то иной раз существенно подтормаживает на взятии тех либо иных доков" - вот этого бы никогда не было, а так вы просто забили операции I/O на максимум
 
E

Eugenus

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

TIA

У меня есть кусок кода, который принудительно запускает агент через каждые 30 секунд, который далеко не всегда успевает отработать за этот интервал, при этом нагрузка на сервер вроде бы остается постоянной и вообще все работает замечательно. Такое впечатление, что домино завершает работу недовыполнившегося агента и запускает его по новой. А вы что думаете по этому поводу ?
Домино сама принудительно завершает агента только по истечению максимального времени отведённого на работу агентов. По-умолчанию, кажется, 15 мин. Это время можно изменить через notes.ini. В других случаях, в частности по истечению интервала запуска, Домино агента не прерывает.
Агент который запускает другой агент, запускает второй агент в отдельном потоке? Если нет, тогда первый агент будет ждать завершения второго.
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
Не использую серчь, коллеция берется из индексированного по первому столбцу представления. Подтормаживание иногда происходит на последовательной инициализации доков из коллекции. Впрочем, ладно...Нужно будет перед завершением агента включить вывод контрольй инфы с датами в текстовый файл, вот тогда и проверю, всякий раз агент отрабатывает или нет...
достаточно начиная с 7ки поставить в агенте галочку - Agent Profiler и там будет подробная статистика по вызовам и их таймингам
Подтормаживание иногда происходит на последовательной инициализации доков из коллекции - а это что не обращение к диску? :facepalm:
 
X

Xalet

Сорри, насчет агент менеджер - это ведь серверная задача, как их может быть несколько ? Это где-то настраивается ?

Вопросик без ответа. Мне тоже интересно, можно ли настраивать?

А если агенты по расписанию отрабатывают, то непременно дождутся окончания работы уже запущенного?

А еще слышал про ограничение по колличеству агенотов в базе. Если больше 8, а-мнгр начинает глючить(в 6ке). Так ли это?
 
T

TIA

Вопросик без ответа. Мне тоже интересно, можно ли настраивать?
В серверном names.nsf в документе на сервер закладке "ServerTasks\AgentManager" поле "Max concurrent agents"
Влияет на количество процессов namgr.exe. В рамках одного процесса одновременно может выполняться только 1 агент.

А если агенты по расписанию отрабатывают, то непременно дождутся окончания работы уже запущенного?
Не знаю как сейчас, но в 5ке в одной БД одновременно мог запускаться только 1 шедульный агент. Перед запуском очередного предыдущий должен быть завершён.

А еще слышал про ограничение по колличеству агенотов в базе. Если больше 8, а-мнгр начинает глючить(в 6ке). Так ли это?
Фигня
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!