Рабочий процесс Windows 4 всегда зависает на одном и том же этапе при нагрузочном тестировании

У меня есть довольно простой рабочий процесс, размещенный на AppFabric. Я вызываю его через конечную точку WCF, используя netTcpBinding, и он вызывает 2 метода WCF, также через netTcpBinding, размещенных на том же сервере и в AppFabric. Я могу загрузить и протестировать оба метода WCF, вызываемые рабочим процессом одновременно, без каких-либо проблем. Однако, когда я запускаю нагрузочное тестирование рабочего процесса, через несколько секунд, когда у меня около 10 одновременных пользователей, рабочие процессы полностью блокируются, и я не могу понять, почему. Все клиенты начинают увеличивать тайм-ауты Open Connection.
Проблема не в блокировке базы данных SQL Server, потому что я ее мониторю, и все идет. Все задействованные таблицы не блокируются. Я думаю, что проблема может быть в MSTSC, так как я запускаю область транзакции в рабочем процессе, но как я могу обнаружить проблему там? Приборная панель на dcomcnfg действительно совсем не помогает.
Как узнать, в чем проблема? В чем может быть проблема. Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ

Что касается дросселирования, я настроил web.config следующим образом:

<behaviors>
  <serviceBehaviors>
    <behavior name="">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceThrottling maxConcurrentCalls="64" maxConcurrentSessions="400" maxConcurrentInstances="464" />
    </behavior>
  </serviceBehaviors>
</behaviors>

Глядя на интерфейс конфигурации AppFabric, я могу подтвердить эти значения для приложения IIS, в котором размещен рабочий процесс Tks.


person Pascal    schedule 05.04.2011    source источник


Ответы (1)


Может быть проблема с дросселированием. Значение MaxConcurrentSessions по умолчанию равно 10, и, поскольку вы можете достичь этого максимума, вы увидите эффект. Перейдите по этой ссылке:

person Thelonias    schedule 13.04.2011
comment
Райан, спасибо за ответ... теоретически я позаботился об этом с помощью этой записи в web.config. Я отредактировал свой вопрос, чтобы встроить его. Я был бы признателен за ЛЮБОЙ другой вклад. Спасибо так много - person Pascal; 13.04.2011
comment
Я не уверен, что еще я мог бы дать относительно ваших первоначальных вопросов. Вы можете протестировать последние 10 пользователей сейчас? Если да, похоже, мы нашли ответ, в противном случае нам нужно придумать что-то еще. - person Thelonias; 14.04.2011
comment
Конфигурация уже была такая. MaxConcurrentSessions по умолчанию имеет значение 10 в WCF 3.5, а в 4 у них есть некоторые правила, согласно которым по умолчанию учитывается 100 * процессоров. Кроме того, я не думаю, что если бы это была проблема с дроссельной заслонкой, я бы получил плохую производительность, а не блокировку. И методы WCF вызовы рабочего процесса не заблокированы. Я думал о MTDTC, потому что инструменты отладки для него ужасны. - person Pascal; 14.04.2011