How to Avoid 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.

Note

For information about identifying if a server has a disk bottleneck, see Windows Performance Monitor (https://go.microsoft.com/fwlink/?LinkID=204007). Windows Performance Monitor is a Microsoft Management Console (MMC) snap-in that provides tools for analyzing system performance.

To avoid disk contention, do the following:

Steps Reference
Use Raid10/0+1 disk configurations. Best Practices for Avoiding Bottlenecks
If possible, deploy the databases on a high-speed SAN. If multiple databases are sharing the same disks, we recommend configuring them on separate dedicated disks. In addition, we recommend separating the MDF and LDF files for the MessageBox database onto separate disks. Optimizing Filegroups for the Databases2
Consider allocating multiple files for the TEMPDB database, as this will significantly reduce disk contention and spread the load across multiple data files. Pre-Configuration Database Optimizations2
Consider separating the MessageBox database onto a dedicated server that is separate from the BizTalk Tracking databases. Post-Configuration Database Optimizations2
Assign the MSDTC log file directory to a separate dedicated drive. Optimizing Operating System Performance
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. How to Identify Bottlenecks in the Tracking Database
Optimize the MessageBox database for read and write operations. How to Identify Bottlenecks in the MessageBox Database1
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. Optimizing BizTalk Server Performance
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. Optimizing BizTalk Server Performance
Consider using Windows Performance Monitor to diagnose disk contention issues.. Windows Performance Monitor

For more information about disk performance analysis, see the following resources:

See Also

Bottlenecks in the Database Tier