2009-04-10 4 views
6

На сервере, на котором запущено несколько сайтов ASP.NET, лучше ли использовать один пул приложений для каждого сайта или для совместного использования одного пула приложений? Каковы преимущества или недостатки, присущие каждой установке? Или здесь есть жесткое правило?Совместное использование пулов приложений .NET

ответ

5

Это действительно зависит от требований, предъявляемых к сайту, а также от вашей обеспокоенности в отношении рисков.

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

Несмотря на то, что для этого не существует «жесткого и быстрого» правила, некоторые из вещей, которые я считаю и которые вызывают «автоматические» решения для меня, следующие.

  • Является ли миссия приложения критической? (Если это так, отдельный пул приложений)
  • Это приложение для сторонних разработчиков? (Если это так, и неуверенность в том, что все это делает, отдельный пул приложений)
  • Будет ли это приложение видеть крупные всплески активности? (Если это так, то лучше всего выделить)

Существует много вариантов, но ключи являются изоляцией и способностью устранять неполадки в отдельных приложениях. Вот Microsoft article, который касается и его немного.

+0

Итак, если жизненный цикл страницы, например, одного клиента, требует много ресурсов и времени для завершения, было бы лучше разделить их на отдельные пулы приложений, чтобы потоки не были заняты? – Markive

1

Это будет зависеть многое от того, если некоторые сайты нужно больше надежности, чем другие, то, что ожидаемая нагрузка на сайте есть, и т.д.

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

1

Нет жесткого правила. Я предпочитаю использовать один пул приложений на каждом сайте (и IIS7 даже по умолчанию для создания одного на сайт), потому что мне нравится играть в него безопасно, если у меня есть утечка памяти на одном сайте/пуле, я не хочу, чтобы это затрагивало и снимало другие сайты. Но у меня также есть несколько серверов, на которых 100 сайтов используют один пул без проблем. Поэтому, как всегда, все зависит.

+0

Зачем рисковать 100 сайтов в одном бассейне? Что вы набираете? Если выполнение приостановлено на один, они не все приостановили? Будет ли 4 A/Ps с 25 сайтами работать немного больше, но более устойчивым? – Markive

3

Одним из преимуществ отдельных AppPools является то, что в случае, если вам нужно переработать AppPool, вы можете сделать это для одного сайта, не влияя на производительность (или кеширование) других.

0

Я бы предпочел одно приложение - один пул приложений - у вас проблемы с производительностью. Исключение в фоновом потоке (как только кто-то начинает играть в async) может сбить весь пул приложений. И если вы не включили автоматическую рециркуляцию, это может вызвать множество проблем.

2

Одним из наиболее важных правила помнить:

НЕ пут .NET 1.1 и .NET 2.0 приложений в одном пуле приложений. Это будет очень быстро.

Смежные вопросы