LINUX.ORG.RU

Удаленный запуск и мониторинг процессов

 , ,


1

4

Доброе время суток!

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

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

Сейчас существует два пути решения проблемы:

1. Самолично разработать данную систему

2. Можно воспользоваться функционалом из MPI. Но смущает использовать MPI, только как средство запуска и отслеживания работоспособности процессов. Получается как то несоразмерно его функционалу.

Возможно уже существуют нормальные готовые решения, чтобы не изобретать новый велосипед? Буду рад любому совету и помощи!

Заранее всем спасибо!



Последнее исправление: saiclex (всего исправлений: 3)
Ответ на: комментарий от saiclex

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

MikeDM ★★★★★
()
Ответ на: комментарий от MikeDM

:D Попробую поподробнее. На данный момент разработан процесс, который умеет работать с данными и умеет взаимоействовать с другими экземплярами самого себя. Экземпляры процесса могут выполняться паралельно на том же компьютере, могут выполняться на других компьютерах. Данная часть уже сделана и вроде нормально работает.

Раньше, данный процесс централизованно запускался на разных машинах, посредством простого скрипта на bash. Однако на данным момент это стало неудобно, появился дополнительный функционал, и остро встал вопрос, чтобы запуск происходил под управлением централизованной программы.

Сейчас хочется сделать логику, которую мне легче описать через однокомпьютерный вариант. Там все сводилось бы к виду: 1. Запустить процессы (fork, exec) 2. Ожидать их завершение (waitpid) или завершить некоторые из них по требованию. 3. Предпринять некие действия в зависимости от того, что вернул при завершении процесс (запустить заново, ничего не делать, завершить другие)

Теперь как бы легче адаптировать эту логику на многомашинный вариант?

saiclex
() автор топика
Ответ на: комментарий от saiclex

Если централизованно думаешь управлять процессами то надо будет систему для взаимодействия с ними. Тут многое зависит от твоих «процессов» должна ли система управления к ним обращаться либо они должны к системе управления обращаться.

MikeDM ★★★★★
()
Ответ на: комментарий от saiclex

Теперь как бы легче адаптировать эту логику на многомашинный вариант?

реализовать «агента». процесс(программу/скрипт/заглушку) который запускается на управляющей машине и соотносится с удалёнными клиентами 1:1. Запуск агента влечёт запуск удалённого клиента, завершение клиента влечёт завершение агента, ну и по мелочам там..

на центральной машине рулишь агентами как локальными процессами, как тебе удобно

MKuznetsov ★★★★★
()

эрланг из коробки с некоторой доработкой под свои нужды, если попроще, то любая система, работающая с транзакционной БД в общем смысле.

Был gearman кажется такой еще, если еще попроще.

Вам зачем это?

swwwfactory ★★
()

openPBS/torque не подойдёт?

В пост не вчитывался, глазами пробежал.

Но смущает использовать MPI, только как средство запуска и отслеживания работоспособности процессов. Получается как то несоразмерно его функционалу.

Значит наверное не нужно, оверхед.

BattleCoder ★★★★★
()
Последнее исправление: BattleCoder (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

Извини можно чуть попдробнее. Не совсем понятно про агентов. Ведь остается та же проблема, удаленно запустить агент, остановить... Или имеется ввиду, что агенты изначально запускаются на управляющей машине и работают там вечно (а-ля демоны). Я могу удаленно с ними взаимодействовать, и через них запускать, завершать, получать коды завершения и мониторить на данной машине удаленные клиенты.

saiclex
() автор топика
Ответ на: комментарий от anonymous

поддерживаю. задеплоить, запустить, остановить, данные залить - все можно по ssh. Может, конечно, чего не понимаю...

anymouse
()
11 марта 2014 г.

на bash осилишь за день всю систему
И не надо использовать тяжеловесные велосипеды.

reprimand ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.