Я не уверен, как вы измеряете узкое место в производительности, но независимо от того, сколько клиентских вызовов вы генерируете, служба будет обрабатывать только 200 вызовов одновременно. NetTcpBinding использует сеансы, поэтому в настройках есть настройка maxConcurrentSessions="200"
. Вы настроили службу как многопоточный синглтон, который ограничен 200 одновременными вызовами с помощью параметра maxConcurrentCalls="200"
. Загрузка ЦП также будет зависеть от того, сколько работы выполняется во время каждого вызова и от того, связан ли он с вводом-выводом или нет. Просмотрите документацию для элемента serviceThrottling и попробуйте увеличить обе настройки, чтобы увидеть, улучшается ли ваша пропускная способность.
Если ваша сервисная реализация позволяет, я бы порекомендовал вам попробовать настроить сервис с InstanceContextMode.PerSession
и ConcurrencyMode.Single
, чтобы сравнить пропускную способность с вашей текущей конфигурацией. IIS 7x размещает службы WCF с использованием службы активации процессов Windows (WAS). WAS предназначен для обработки параллелизма. Одноэлементная конфигурация сводит на нет ценность использования WAS.