Зачем запускать много экземпляров веб-серверов на узел? - PullRequest
0 голосов
/ 06 февраля 2012

Я часто вижу установки (Rails | Java | PHP | Node.js | nginx | ​​и т. Д.), Где есть много экземпляров программного обеспечения веб-сервера (nginx, apache, mongrel, это не имеет значения), запущенного на сервер и обслуживает одно и то же приложение вместо одного «огромного» экземпляра.

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

Чтобы прояснить ситуацию, я часто вижу утверждения типа "... у нас есть 10 серверов, на которых запущено 20 экземпляровкаждый сервер ". Почему бы и нет" 10, на котором запущен 1 экземпляркаждый "?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Запуск нескольких экземпляров веб-сервера имеет смысл, только если он однопоточный (например, node.js или mongrel) для использования преимуществ нескольких ядер ЦП.

1 голос
/ 25 февраля 2012

Я бы добавил к превосходному ответу Стива, что многопоточные серверы на основе событий сочетают в себе преимущества возможности обрабатывать много запросов на поток - и в то же время быть в состоянии использовать все доступные ядра ЦПsystem.

Помимо ядер ЦП, наличие одного экземпляра программы вместо множества экономит память (дублированный код и данные) и кэш-память ЦП от постоянной очистки.

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