О балансе рабочей нагрузки для кластера GitHub Enterprise Server
Экземпляр GitHub Enterprise Server в конфигурации кластера назначает каждой задаче узел в соответствии с ролью узла. Это назначение называется выделением.
Если узел кластера недоступен другими узлами из-за сбоя оборудования или программного обеспечения, экземпляр создает новое выделение для распределения заданий из неработоспособного узла на другой узел, который может обрабатывать рабочую нагрузку. В некоторых ситуациях это распределение не происходит автоматически, и один узел может выполнять больше заданий, чем ожидалось.
Вы можете управлять выделениями с помощью ghe-cluster-balance
служебной программы, которая может отображать состояние существующих выделений или принудительно распределять выделение экземпляра. Например, вы должны сбалансировать выделения после добавления нового узла в кластер. При необходимости можно запланировать обычную балансировку.
Следующие команды можно выполнить из любого узла в кластере с помощью административной оболочки. Дополнительные сведения см. в разделе Доступ к административной оболочке (SSH).
Проверка распределения заданий кластера
В некоторых случаях, например сбой оборудования, базовое программное обеспечение, которое управляет выделением, переносит задачи из неработоспособного узла в здоровый узел. Если неработоспособный узел восстанавливается, задача может остаться назначенной восстановленным узлом, что может привести к небалансной нагрузке. Риск сбоя задания может увеличиться, если выделение небалансировано, а дополнительные узлы завершаются сбоем. Вы можете проверка распределение выделений с помощью служебной ghe-cluster-balance status
программы.
-
Чтобы просмотреть список выделений, выполните следующую команду. В служебной программе отображаются здоровые выделения зеленым цветом. Если какие-либо задания не распределяются должным образом, служебная программа отображает количество выделений красным цветом.
Shell ghe-cluster-balance status
ghe-cluster-balance status
-
Если задание неправильно распределено, проверьте выделение, выполнив следующую команду. Замените ЗАДАНИЕ одним заданием или списком заданий с разделителями-запятыми.
Shell ghe-cluster-balance status -j JOB
ghe-cluster-balance status -j JOB
Например, чтобы просмотреть состояние выделения для HTTP-сервера и службы авторизации экземпляра, можно запустить
ghe-cluster-balance status -j github-unicorn,authzd
.
Перебалансирование выделений
После определения разбалансированных заданий на узлах кластера можно перебалансировать выделения с помощью служебной ghe-cluster-balance rebalance
программы. Программа проверка распределение существующих заданий. Если какие-либо задания не сбалансируются, программа отображает задания и предложит продолжить. Если продолжить, программа создает новые выделения для распространения заданий.
-
Чтобы выполнить сухой запуск и просмотреть результат повторной балансировки без внесения изменений, выполните следующую команду. Замените ЗАДАНИЕ одним заданием или списком заданий с разделителями-запятыми.
Shell ghe-cluster-balance rebalance --dry-run -j JOB
ghe-cluster-balance rebalance --dry-run -j JOB
Например, чтобы выполнить сухой запуск заданий перебалансирования для HTTP-сервера и службы авторизации экземпляра, можно запустить
ghe-cluster-balance rebalance --dry-run -j github-unicorn,authzd
. -
Чтобы перебалансировать, выполните следующую команду. Замените ЗАДАНИЕ одним заданием или списком заданий с разделителями-запятыми.
Shell ghe-cluster-balance rebalance -j JOB
ghe-cluster-balance rebalance -j JOB
Планирование перебалансирования выделения
Вы можете запланировать перебалансирование заданий в кластере, задав и применяя значения конфигурации для ваш экземпляр GitHub Enterprise Server.
Примечание. В настоящее время можно запланировать только перемещение заданий для HTTP-сервера github-unicorn
.
-
Чтобы настроить автоматическую почасовую балансировку заданий, выполните следующую команду.
Shell ghe-config app.cluster-rebalance.enabled true
ghe-config app.cluster-rebalance.enabled true
-
При необходимости можно переопределить расписание по умолчанию, определив выражение cron. Например, выполните следующую команду, чтобы сбалансировать задания каждые три часа.
Shell ghe-config app.cluster-rebalance.schedule '0 */3 * * *'
ghe-config app.cluster-rebalance.schedule '0 */3 * * *'
-
Чтобы применить конфигурацию, выполните следующую команду.
Примечание. Во время выполнения конфигурации службы на ваш экземпляр GitHub Enterprise Server могут перезапуститься, что может привести к краткому простою для пользователей.
Shell ghe-config-apply
ghe-config-apply
-
Подождите завершения запуска конфигурации.