Performing Bottleneck Testing and Tuning

You should complete performance testing to determine bottlenecks in the system and to tune the system accordingly.

Testing a Subsystem

A best practice for identifying system bottlenecks is to run performance tests on subsets of the entire system, for example:

  • Establish baseline performance parameters for external systems that send messages to or receive message from BizTalk Server.

  • Enlist orchestrations, but do not start them. Drop messages into the inbound queues/file locations and let the inbound receive adapters drain the queue/file locations and publish messages into the MessageBox database. This allows you to isolate your receive ports to determine their maximum sustained input rate.

  • Once the messages are pulled into the MessageBox database, stop the receive adapters, enable the orchestration processes and/or send adapters, and then measure the rate at which orchestrations and/or send adapters are processing messages.

Testing the End-to-End System

Testing of input and output rates as described in preceding section is an effective way to isolate performance of the application subsystem, although it does not describe end-to-end performance. You should also test end-to-end performance because some bottlenecks cannot be identified until multiple resources begin to contend for the same shared resource (for example, the MessageBox database).

To generate load against a BizTalk Server environment, consider using the Microsoft BizTalk LoadGen 2007 tool. Download LoadGen.

To generate and analyze a performance report for a BizTalk Server environment, consider using the Performance Analysis of Logs (PAL) tool. For more information about the PAL tool, see Using the Performance Analysis of Logs (PAL) Tool.

What Developers, Operators, and Administrators Should Know

BizTalk Server developers should be well versed on BizTalk Server performance characteristics and tuning. Operators and administrators should be knowledgeable about MessageBox database scale-out aspects, SAN tuning, network tuning, and SQL Server database tuning (for example, see SQL Server Settings That Should Not Be Changed). Developers, operators, and administrators should be aware of how to tune BizTalk Server for high-throughput and low-latency.