Мы собираемся развернуть несколько сайтов на новых серверах. У меня есть следующие вопросы о пулах приложений:
Представляется целесообразным иметь один пул приложений для каждого веб-сайта. Есть ли предостережения в отношении такого подхода? Будет ли один пул приложений забирать все ЦП, память и т. Д.?
Когда следует разрешить несколько рабочих процессов в пуле приложений? Когда не следует?
Можно ли использовать ограничение частной памяти, чтобы один пул приложений не мешал работе другого? Не приведет ли установка слишком низкого значения к тому, что действительные запросы будут перезапускать пул приложений без получения действительного ответа?
В чем разница между ограничениями частной и виртуальной памяти?
Есть ли веские причины НЕ запускать один пул приложений на сайте?
1) Кажется целесообразным иметь пул приложений для каждого веб-сайта. Есть ли предостережения в отношении такого подхода? Может ли один пул приложений, например, забрать весь процессор, память и т. Д.?
Это довольно хороший подход; я не могу придумать никаких веских причин для того, чтобы разные «сайты» (приложения) использовали один и тот же пул. Если только им не нужно делиться каким-то одним ресурсом. Одно приложение теоретически может потреблять много ресурсов процессора или памяти, но изменение способа объединения приложений в пул на самом деле не повлияет на это сильно.
2) Когда следует разрешить несколько рабочих процессов в пуле приложений. Когда не следует?
Лучше оставить это в покое, используя настройки по умолчанию. Если вы действительно не знаете, что делаете, это может негативно повлиять на ваш сайт / приложение.
3) Можно ли использовать ограничение частной памяти, чтобы один пул приложений не мешал работе другого? Приведет ли установка слишком низкого значения к тому, что действительные запросы будут повторно использовать пул приложений без получения действительного ответа?
а) Теоретически
б) Да, установка меньшего значения может иметь негативные последствия. Опять же, если у вас нет особых потребностей и вы не знаете, что делаете, просто оставьте их в покое.
4) В чем разница между ограничениями частной и виртуальной памяти?
Это очень сложно, вот небольшой пост, который может помочь: http://cybernetnews.com/cybernotes-windows-memory-usage-explained/
5) Есть ли веские причины НЕ запускать один пул приложений на сайте?
Опять же, единственная причина, по которой я могу думать, заключается в том, что если есть какой-то «общий ресурс», который нужен нескольким приложениям, тогда вы захотите запустить их в одном процессе.
Для приложений общего назначения и веб-сайтов IIS довольно хорошо настроен со значениями по умолчанию.
****ОБНОВИТЬ****
Что касается вашего запроса на дополнительную информацию по № 2, вам не следует делать этого, если у вас нет особой необходимости. Даже с действиями сервера, которые занимают много времени, запросы обслуживаются с использованием нескольких потоков, и вы можете использовать «Асинхронные запросы» для обработки длительных задач (что освобождает поток пула потоков для обработки других запросов). На самом деле я не могу придумать какой-либо веской причины, чтобы разрешить несколько процессов для одного пула.
Как только вы начнете говорить о нескольких процессах, вы потенциально можете столкнуться с такими вещами, как: потеря состояния сеанса, потому что сеанс активен в процессе 1, но запрос обрабатывается процессом 2. Или, что еще хуже, вы должны выяснить, как сделать некоторую связь между процессами, что является настоящей болью.
Независимо от того, что вы придете в отношении причины нескольких процессов, я готов поспорить, что есть лучший способ справиться с этим (а не запускать другой процесс).
Я всегда настраиваю выделенный пул приложений для веб-сайта. В сценариях недорогого хостинга веб-сайтов имеет смысл иметь большое количество сайтов на пул приложений.
Пределы памяти на самом деле являются всего лишь примитивными порогами безопасности, чтобы предотвратить использование сайтом всех системных ресурсов. Обратите внимание, что это скорее потенциальная проблема в Windows 2008 R2 x64, чем в IIS 6.0 x86, потому что приложения x86 имеют естественный потолок памяти 2 ГБ. В IIS 7.5 приложению с утечкой памяти намного проще потреблять большие объемы памяти.
Я также не большой поклонник утилизации пулов приложений. Если у меня есть пул приложений, и я работаю единственным приложением, если с нашим кодом все в порядке, вероятно, нет необходимости повторно использовать пул приложений. И если в приложении обнаружен дефект, окончательным подходящим действием будет исправление кода.