Avoiding Disk Contention

Avoiding Disk Contention

BizTalk Server is designed as a persistent system. For high throughput scenarios, the MessageBox and BizTalk Tracking databases can experience severe contention. This contention can be aggravated by slow disks. If the disks are slow (greater than 15ms on average for Avg. Disk sec/Read or Avg. Disk sec/Write), it may cause SQL Server to hold onto locks longer (high Lock Wait Time and high Lock Timeouts). This, in turn, can cause the MessageBox tables (Spool and Application Queues) to grow, causing database bloat and throttling. This situation ultimately results in lower overall sustainable throughput.

If BizTalk Server is not responsible for the bottleneck in your system, the problem might be with the server itself. For information about identifying if a server has a processor bottleneck, and using the Microsoft Performance Monitor tool to determine if an overall user mode processor bottleneck exists, see "How To: Identify Functions causing a High User-mode CPU Bottleneck for Server Applications in a Production Environment" at http://go.microsoft.com/fwlink/?LinkId=115283.

To avoid disk contention, it is recommended that you do the following:

Steps Reference

Use high-speed disks (with multiple spindles).

Best Practices for Avoiding Bottlenecks

If possible, deploy the databases on a high-speed SAN. If multiple databases are sharing the same disks it is recommended to configure them on separate dedicated disks. In addition, it is recommended to separate the MDF and LDF files for the MessageBox database onto separate disks.

Planning for Database Availability

Consider separating the MessageBox database onto a dedicated server that is separate from the BizTalk Tracking databases.

Monitoring and Reducing Database I/O Contention

Monitor the local drive on the SQL Server as the MSDTC logs are saved on the local drive (C:\WINDOWS\system32\MSDtc).

Scaling Out the MessageBox Database

If there is contention on the local drive due to the PageFile or MSDTC log, try moving the PageFile and/or the MSDTC log to a separate drive.

Best Practices for Avoiding Bottlenecks

Optimize the Tracking database for write operations.

Identifying Bottlenecks in the BizTalk Tracking Database

Optimize the MessageBox database for read and write operations.

Identifying Bottlenecks in the MessageBox Database

If a BizTalk host instance is saturating the CPU, consider separating sending, receiving, processing, and tracking functionality into multiple hosts. This configures the system so that the orchestration functionality runs on a separate dedicated server to improve overall system throughput.

Configuring Hosts and Host Instances

If multiple orchestrations are deployed, consider enlisting them in different dedicated orchestration hosts. This isolates the different orchestrations and prevents contention for shared resources either in the same physical address space or on the same server.

Configuring Hosts and Host Instances

Consider using the Microsoft Server Performance Advisor (SPA) to diagnose disk contention issues. Use the SPA tool to identify files and processes that cause disk contention.


© 2015 Microsoft