2009-05-29 1 views
0

У нас есть сервер машин с очень хорошей конфигурацией нашей локальной сетиресурсов для процессов IIS и стандартных приложений Windows

  • 4 Гб оперативной памяти
  • 1 TB HDD
  • Quad Processor

На сервере может работать 2 типа приложений

  1. Веб-приложение ASP.NET, работающее под управлением IIS
  2. Стандартное приложение Windows, работающее с учетной записью администратора.

Мой вопрос в том, как распределяются ресурсы между этими приложениями. Я знаю, что приложение Windows может использовать высокие ресурсы (100% процессор, 100% оперативная память и т. Д.), Но я не уверен, насколько доступ к процессам asp.net имеет доступ к этим ресурсам. Он ограничен для них или такой же, как приложение для Windows? Также, если есть какие-то ограничения, как мы можем это контролировать.

Причина, по которой я задаю этот вопрос, состоит в том, что из нашего веб-приложения мы хотим выполнить тяжелую операцию. Каков наилучший способ сделать это. Должен ли я обращаться за услугами Windows, MSMQ или использовать учетную запись asp.net?

ответ

1

Чтобы ответить на ваш первый вопрос, в Windows Server 2003 или 2008, есть вещь, называемая Windows System Resource Manager, а также WSRM, которая позволяет вам распределять системные ресурсы для приложений или процессов. Это поставляется с корпоративной версией ОС сервера. Просто как выделить ресурсы - это своего рода черное искусство; вам придется попробовать все, тщательно протестировать во всех условиях.

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

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


Что касается ASP.NET и служб Windows: ASP.NET, очевидно, будет в первую очередь полезно для запросов на основе браузера, но и, возможно, для запросов REST-стиля (или аналогичный) из других систем. Приложения ASP.NET будут работать под рабочим процессом w3wp.exe, который является nanny'd от IIS. Вы получаете все средства управления процессами IIS, такие как периодический перезапуск, автоматический перезапуск устаревших процессов, активация на основе запроса и т. Д.

Службы Windows - это способ создания пользовательских приложений, которые запускаются на вашем Windows Server, быть основанным на запросах. Одним из примеров вашего сценария может быть служба Windows, которая запускается по расписанию, скажем, в 10 вечера каждый вечер и проходит через все транзакции, стоящие в очереди в MSMQ. Когда очередь пуста или в 4 часа, в зависимости от того, что наступит раньше, служба Windows отключится. Служба Windows не пользуется преимуществами управления процессом IIS.

Нижняя линия, службы ASP.NET и Windows предлагают различные альтернативы хостингу процессов или приложений и управлению жизненным циклом.


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