Следующая проблема становится для нас огромной проблемой.
У нас есть около 15 Rails-приложений для нашего предприятия, работающих на огромном сервере. Проблема возникает, когда два или три приложения очень популярны, и они начинают занимать все экземпляры в PassengerMaxPoolSize. Как только это происходит, другие приложения начинают терять экземпляры, в результате чего несколько приложений полностью закрываются в любой момент. Нам нужен следующий механизм:
PassengerMinInstancesPerApp 1
Вот и все.
НО, у пассажира этого нет, поэтому мы попробовали все виды вариаций PassengerMaxPoolSize, PassengerMaxRequests, PassengerMaxInstancesPerApp, PassengerPoolIdleTime и PassengerUseGlobalQueue.
Вот проблемы с нашей конфигурацией:
1: PassengerMaxPoolSize имеет значение около 38 ... чуть выше, и по какой-то странной причине другие 200 обычных http-сайтов начинают сканировать.
2: PassengerMaxRequests установлен на 1000, но для приложений, которые используются только один или два раза в неделю, они все еще забиты и убиты другими более популярными приложениями
3: PassengerPoolIdleTime установлен в 0, потому что у нас нет причин желать без необходимости закрывать приложения.
4: PassengerGlobalQueue включен, чтобы обеспечить немного лучшую балансировку нагрузки.
5: PassengerMaxInstancesPerApp WAS установлен и должен был работать, но по какой-то причине это вызвало огромную задержку, аналогичную проблеме PasengerMaxPoolSize ... это МОЖЕТ решить проблему, но, похоже, она не работает ...
К сожалению, получить другой сервер невозможно (можно представить, что более популярные приложения переносятся в отдельную коробку).
Кто-нибудь знает, планирует ли Phusion сделать параметр PassengerMinInstancesPerApp? Или, если они планируют установить механизм, который запретит полное уничтожение данного приложения? (Или, если у вас есть другие предложения, я открыт для возможных решений.
Cheerio!
Berns