Troubleshooting WCF Performance

This is a re-post from 2011 for reference purposes.

A small configuration setting can make a big difference.

I’m currently working on a C# test application which dispatches real units of work through an Oracle Service Bus (OSB) to C++ services on an AIX box. The application uses the Supervisor Pattern where a single dispatcher, using XMPP, sends work to multiple workers on different PCs. The multi-threaded workers connect through WCF to the OSB. The use of XMPP was to get around perceived bottlenecks with WCF, in hindsight it wasn’t necessary.

Despite the XMPP dispatcher (the single bottleneck) being able to dispatch over 200 actions a second (as per SLA), the workers were only dispatching a few a second to the OSB.

After eliminating everything except the simplest thing, I turned to Google for help, and discovered that there is a per-AppDomain outbound connection limitation default of two for each remote server. It can be adjusted via the connectionManagement configuration section. This simple change was all that was required:

<configuration>
  <system.net>
    <connectionManagement>
      <add address=”*” maxconnection=”30″/>
    </connectionManagement>
  </system.net>
</configuration>

Read more about WPF Performance on this excellent blog.

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s