Рабочие процессы - это способ сегментирования выполнения вашего веб-сайта через несколько exe. Вы делаете это по нескольким причинам: один, если один из рабочих забивается из-за проблем времени выполнения, это не снимает других. Например, если приходит html-запрос, который заставляет процесс запускаться в ничто, тогда будут убиты только другие запросы, которые обрабатываются этим рабочим рабочим процессором. Другим примером является то, что один запрос может вызвать блокировку других потоков, обрабатываемых одним и тем же работником.
Насколько много вам нужно, выполните некоторые нагрузочные испытания. Хит приложение трудно и посмотреть, что происходит только с одним. Затем добавьте еще немного и снова нажмите. В какой-то момент вы достигнете точки по-настоящему насыщения сети машин, диска, процессора и бара. Вот тогда вы знаете, что у вас правильный баланс.
Кстати, вы можете контролировать количество потоков, используемых для каждого рабочего процесса, через файл machine.config. Я считаю, что ключ - это maxWorkerThreads.
Теперь остерегайтесь, если вы используете сеанс, состояние сеанса не разделяется между рабочими процессами. Обычно я рекомендую избегать сеанса, но это то, что нужно учитывать.
Для всех целей и задач вы можете рассматривать каждый рабочий процесс как отдельный отдельный веб-сервер. За исключением того, что они работают в одной коробке.
Я не был уверен, что если это будет более уместно здесь или на ServerFault, сообщите мне, если я сделал неправильный выбор, и я его переведу. –
Идите вперед и спросите в обоих местах. Я думаю, что ваш вопрос здесь уместен. Специфика развертывания ASP.Net часто относится к области знаний разработчика, особенно в том, что касается оптимизации приложений. – DOK
Я согласен с DOK. Оба места подходят. Dev's часто являются теми, кто должен рассказать сетевым ребятам, как настроить сервер. Из-за этого они должны иметь эту информацию. – NotMe