У меня есть бесплатная учетная запись OpenShift с 3 передачами по умолчанию. На этом я установил образ WildFly 8.1 с помощью веб-консоли OpenShift. Я установил минимальное и максимальное масштабирование до 3.Предотвращение развертывания на входном узле, только развертывание на другие узлы
Что происходит сейчас, что OpenShift создаст 3 JBoss WildFly экземпляры:
- Один на узел ввода (который также работает HAProxy)
- Один на вспомогательный узел
- один на другой вспомогательный узел
странная вещь, что экземпляр JBoss WildFly на узле ввода по умолчанию отключена в конфигурации балансировки нагрузки (ч aproxy.conf). НО, OpenShift по-прежнему развертывает военный архив для него всякий раз, когда я фиксирую в связанном git-репо.
Что является дополнительной проблемой, так это то, что из-за невероятно низкого количества максимальных пользовательских процессов (250 через ulimit -u) этот экземпляр JBoss WildFly на входном узле не может даже запускаться. Во время запуска JBoss WildFly будет бросать случайный «java.lang.OutOfMemoryError: неспособный создать новый собственный поток» (и нет, память в порядке, это ограничение процесса ОС).
В результате процесс развертывания будет висеть.
Итак, подведем итог:
-
экземпляр
- JBoss WildFly создается на узле ввода, но отключен в балансировки нагрузки
- JBoss WildFly в конфигурации по умолчанию не может запуска на узле ввода, даже с тривиальная война.
- Процесс Установщик пытается развернуть в JBoss WildFly на узле ввода, несмотря на его отключить в балансировки нагрузки
Теперь мой вопрос:
Как я могу изменить Deployer процесс (в том числе gear start
команда), чтобы не пытаться развернуть экземпляр JBoss WildFly на узле входа?
Спасибо за ваш ответ, но я уже знал, что это не настоящий OOM, см. Эту часть в моем вопросе: «И нет, память в порядке, это ограничение процесса ОС». ;) –
«Как только это произойдет, это отключит что-нибудь еще от работы на этом оборудовании, чтобы HAproxy получил все ресурсы». - Это ясно, что это происходит, но если вы перейдете прямо к 3-х передачам (фиксированный, мин 3, максимум 3) , почему здесь есть экземпляр JBoss? И почему он запускается и развертывается, если он отключен? В любом случае, он все равно захватывает ресурсы, хотя на него не направляется трафик :( –
Итак, вы правы, что он не * полностью * получает все ресурсы. В основном, когда приложение масштабируется с 2 передач до 3, HAProxy будет прекратите маршрутизацию трафика на приложение на головной передаче и начните маршрутизацию его на другую 2.Это гарантирует, что приложение на вашем головном устройстве не использует столько CPU, сколько требуется HAProxy (использование HAproxy в памяти довольно минимальное). Я пересмотрю свой ответ, чтобы отразить это. – niharvey