locked
Workflow Service failing on high load RRS feed

  • Question

  • Hi,

    I am load testing my workflow service to ensure that it can sustain high loads for a high volume transaction application. I am using Visual Studio's Load Test to run on a simple unit test to call the workflow service.

    I have configured the bindings on my service as follows:

     <bindings>
          <netTcpBinding>
            <binding portSharingEnabled="true" closeTimeout="00:10:00"
                     openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
                     maxBufferPoolSize="20480000" maxBufferSize="20480000" maxConnections="10" 
                     maxReceivedMessageSize="20480000"  >
              
              <security mode="None" />
            </binding>
          </netTcpBinding>
        </bindings>

    The readerQuotas in my client is configured as follows:

    <readerQuotas maxDepth="32" maxStringContentLength="20480000" maxArrayLength="20480000"
                  maxBytesPerRead="4096" maxNameTableCharCount="16384" />

    When I load test the workflow service, it is able to sustain 4000 over calls but randomly reports 200-900 errors. I use the Service Trace Viewer and found that it is returning the following error:

    MaxOutboundConnectionsPerEndpoint quota (10) has been reached, so the connection was closed and not reused by the listener.

    When I tried to set the maxConnections property to a higher number i.e. 20 or 100, the number of error increases and the percentage of successful calls drops dramatically.

    I am hosting the service in WAS using netTcpBinding.

    I hope to get some advice on this.

    Thank You,
    Serena Yeoh

     

    Monday, August 30, 2010 12:52 AM

Answers

  • Hi,

    I found out that the maxConnections problem was due to me testing the load on a Windows 7. By default, all client OS have a 10 connection cap. When I re-deploy the test to a Windows Server 2008 R2, I was able to adjust the maxConnection setting to above 10.

    After tuning the maxConnection, I was then having another error where the server terminates the connection. By tuning the readyQuotas, I am able to stabilize that as well.

    <readerQuotas maxDepth="64" maxStringContentLength="20480000" maxArrayLength="20480000"
                  maxBytesPerRead="8152" maxNameTableCharCount="16384" />

    Thank You.

    • Marked as answer by Firedancer Saturday, September 11, 2010 8:54 AM
    Saturday, September 11, 2010 8:54 AM

All replies