У нас следующая ситуация:
Сценарий 1
WCF
служба размещена на Сервер # 1 .Клиентское приложение, которое может вызывать несколько потоков, каждый поток имеет свой собственный набор данных, с которым он работает, каждый поток вызывает WCF
сервис, отправляющий запись по записи для обработки.Это клиентское приложение размещено на том же сервере # 1 .Производительность отличная, скажем, 100 т / с легко с 20 работниками.
Сценарий 2
WCF
Сервис размещен на Сервер # 1 Клиентское приложение размещено на сервере # 2 Производительность снижается со 100 до 10 tps.
Аппаратное обеспечение Сервер # 1 и Сервер № 2 идентичны.Оба сервера имеют Windows Server 2008 R2
.Нет проблем с сетью, таких как потеря карманов или что-то в этом роде, сеть в порядке.Basic HTTP Binding
используется.В обоих сценариях клиент вызывает сервис на полную URI
.
Есть идеи, почему производительность так сильно падает в сценарии 2?
Спасибо
Как ответ на некоторые вопросы ниже:
На самом деле он не учитывает, что делает клиент, это приложение, которое может вызывать, скажем, 25 потоков, каждый поток является клиентом для службы со своим собственным инициализированным клиентом.Вот обязательные настройки:
<basicHttpBinding>
<binding
name="basicHttp"
closeTimeout="00:10:00"
openTimeout="00:10:00"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
bypassProxyOnLocal="true"
maxBufferSize="65536"
maxBufferPoolSize="5242880"
maxReceivedMessageSize="65536"
messageEncoding="Text"
textEncoding="utf-8"
transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="81920" maxArrayLength="163840"
maxBytesPerRead="409600" maxNameTableCharCount="163840" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
Но я перепробовал все возможные комбинации.Также я должен упомянуть, что у нас есть другой клиент, разработанный на Java, использующий тот же сервис через сеть, использующий привязку Basic HTTP и не имеющий проблем с производительностью.