none
Poor performance of WCF on F5 load balancer RRS feed

  • Question

  • Hi, i am facing some issue with WCF performance

    We have win form application which consumes WCF (net.tcp protocol). In production we have web Farm having 3 servers with load balancer (F5). WCF hosted in IIS

    Now when we point WCF to specific server (using either server name or IP); application really perform well. However when we give the DNS name (so that request is pass through load balancer) there is a significant drop in performance. Network team is saying from there side everything is properly working. Please help

    Following is the configuration that i have tin WCF web.config file.

    <!-- WCF Service Configuration and Settings -->
      <system.serviceModel>
     <diagnostics performanceCounters="All" />
        <services>
          <service behaviorConfiguration="GetProxyEnabled" name="companyname.InvOps.ServiceLayer.PAServiceServer">
        <host>
              <baseAddresses>
    <add baseAddress="net.tcp://USHOUIOWEB012VT/PAService"/>
                <!--<add baseAddress="net.tcp://xxx.uat.companyname.net/PAService/"/>-->
              </baseAddresses>
            </host>
            <endpoint address="netTcpAddress" behaviorConfiguration="NetTcpEndPointBehaviour" binding="netTcpBinding" bindingConfiguration="NetTcpBinding" contract="companyname.InvOps.ServiceLayer.IPAService" />
            <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="GetProxyEnabled">
              <serviceMetadata httpGetEnabled="true"/>
              <serviceDebug includeExceptionDetailInFaults="true"/>
              <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
        <serviceThrottling maxConcurrentCalls="200" maxConcurrentInstances="400" maxConcurrentSessions="200"/>
            </behavior>
          </serviceBehaviors>
          <endpointBehaviors>
            <behavior name="NetTcpEndPointBehaviour">
              <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
            </behavior>
          </endpointBehaviors>
        </behaviors>
        <bindings>
          <netTcpBinding>
            <binding name="NetTcpBinding"
                     closeTimeout="05:45:00"
                     openTimeout="05:45:00"
                     receiveTimeout="05:45:00"
                     sendTimeout="05:45:00"
         transactionFlow="false"
         transferMode="Buffered"
         transactionProtocol="OleTransactions"
         hostNameComparisonMode="StrongWildcard"
         listenBacklog="10"
         maxBufferPoolSize="2147483647"
         maxBufferSize="2147483647"
         maxConnections="10"
         maxReceivedMessageSize="2147483647">
              <readerQuotas maxDepth="32"
          maxStringContentLength="2147483647"
          maxArrayLength="2147483647"
          maxBytesPerRead="2147483647"
          maxNameTableCharCount="2147483647" />
              <reliableSession ordered="true"
                               inactivityTimeout="05:45:00"
                               enabled="false" />
              <security mode="Transport">
                <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
              </security>
            </binding>
          </netTcpBinding>
        </bindings>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true"  aspNetCompatibilityEnabled="true"/>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>

    Really appretiate any feedback or suggesttion

    Thursday, July 4, 2013 7:22 AM

Answers

All replies