Я тестирую собственный хост-сервис nettcp WCF, делая запросы из 50 потоков в сервис, расположенный не на том же компьютере Проблема в том, что загрузка процессора никогда не превышает 35% на Xeon E3-1270. Когда я запускаю тот же тест на двухъядерном ноутбуке, он достигает 100%.
Метод WCF ничего не делает, поэтому он не должен ограничиваться IO. Я пытался увеличить количество потоков, но это не помогает. Каждый поток создает сервисный канал и выполняет тысячи вызовов, используя этот экземпляр канала.
Вот класс обслуживания, которым я пользуюсь:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple)]
public class TestService : ITestService
{
public void Void()
{
// DO NOTHING
}
}
Configs:
ServiceThrottlingBehavior:
MaxConcurrentCalls = 1000
MaxConcurrentInstances = 1000,
MaxConcurrentSessions = 1000
NetTcpBinding
ListenBacklog = 2000
MaxConnections = 2000