Связь между максимальным количеством рабочих процессов пула приложений IIS и пулами приложений служб компонентов

Мы находимся в процессе развертывания нового приложения в его живой среде.

На серверах приложений работает размещенное на IIS приложение.NET, которое использует EntityFramework и выполняет многочисленные вызовы не.NET COM+ приложения.

Мы смогли повлиять на производительность чистого кода.NET, изменив число Максимальных рабочих процессов в пуле приложений IIS, но мой вопрос заключается в том, как количество рабочих процессов соотносится с размером пула пулов приложений в службах компонентов.? Вещи как:

  • Должны ли мы стремиться к соотношению 1: 1 между этими двумя значениями?
  • мы должны избегать нескольких рабочих потоков?

Любое понимание с благодарностью получено...

1 ответ

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

Попробуйте измерить количество активных потоков в стрессовой ситуации, чтобы определить, как контролировать размеры отдельных пулов.

Учтите также, что рабочие процессы IIS также перерабатываются по критериям, отличным от использования процессора. Это может существенно повлиять на вашу способность обмениваться данными между вызовами и может подорвать попытки сильно повлиять на прямую производительность.

Было бы лучше сократить затраты на создание мостов от.NET к COM, рассматривая тонкую оболочку COM, которая может объединять несколько запросов из одного запроса.NET. Это также может иметь побочный эффект от объединения нескольких методов COM в один поток из пула.

Другие вопросы по тегам