BIG IP F5 WCF NetTCpBinding 性能不佳

Posted

技术标签:

【中文标题】BIG IP F5 WCF NetTCpBinding 性能不佳【英文标题】:Poor Peformance with BIG IP F5 WCF NetTCpBinding 【发布时间】:2013-07-03 04:02:23 【问题描述】:

当使用 WCF 与负载均衡器绑定 NetTcp 时,我面临性能不佳的问题

我们有使用 WCF(net.tcp 协议)的 win 表单应用程序。在生产中,我们有 3 台带有负载均衡器 (F5) 的服务器的网络农场。 WCF 托管在 IIS 中。我们只使用 1 个用户进行测试

现在,当我们将 WCF 指向特定服务器时(使用服务器名称或 IP);应用程序确实表现良好。但是,当我们提供 DNS 名称(以便请求通过负载均衡器)时,性能会显着下降。网络团队从那里说一切正常。请帮忙

以下是我在 WCF web.config 文件中的配置。

  <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>

非常感谢任何反馈或建议。当使用 WCF 和 NetTcpBinding 时,F5 上的推荐设置是什么。

【问题讨论】:

【参考方案1】:

我现在开始工作了。这是负载平衡配置问题。我们已将虚拟服务器类型从标准更改为性能(第 7 层)。性能没有提高到可接受的范围。

【讨论】:

以上是关于BIG IP F5 WCF NetTCpBinding 性能不佳的主要内容,如果未能解决你的问题,请参考以下文章

F5 BIG-IP 远程代码执行漏洞复现(CVE-2020-5902)

F5 BIG-IP 远程代码执行漏洞环境搭建

f5冗余BIG-IP系统的安装

CVE-2022-1388——F5 BIG-IP iControl REST 身份认证绕过漏洞

CVE-2022-1388——F5 BIG-IP iControl REST 身份认证绕过漏洞

查询 F5 BIG IP SQL 数据库