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