Каков рекомендуемый способ балансировки нагрузки для установки Jenkins с несколькими основными / несколькими подчиненными - PullRequest
2 голосов
/ 05 апреля 2011

Я хотел бы настроить ферму сборки / выполнения N-master x M-slave Jenkins.

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

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

Каков рекомендуемый способ распределения нагрузки между заданиями по ведомым устройствам?т. е. если мастер 1 начал работу на подчиненном устройстве 1, а мастер 2 приступил к выполнению задания, я бы хотел, чтобы он выбрал другого ведомого, отличного от 1, для выполнения этого задания.

Что такоерекомендуемый способ настройки?

1 Ответ

1 голос
/ 06 апреля 2011

Есть несколько способов сделать это.Вы можете создать задание для запуска на любом открытом исполнителе.Исполнитель - это то, над чем Дженкинс работает.Предполагая, что у каждого экземпляра Jenkins есть один исполнитель, если один мастер исполняет что-то на Slave1, он будет занимать одного исполнителя.Поэтому, когда мастер два пытается запустить что-то, он запускает это на Slave2 (или любом другом доступном исполнителе), так как Slave1 занят.

Это зависит от двух вещей:

  1. , что все задания могут выполняться на любом доступном компьютере / исполнителе
  2. , что у каждого Jenkins есть один исполнитель.

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

Удачи.

...