Hi again! My last post on Host Separation https://johnbilliris.wordpress.com/2014/04/29/biztalk-server-performance-tips-4/ was concerned about the practice of separating your hosts into their logical role within the application (send, receive etc) as well as by application. “What next?” I hear you ask… Here’s the opportunity to improve your application’s performance by the following tweaks that you can apply onto your hosts:- 1. Optimise Host Polling Intervals Now you can optimise the polling interval your hosts for messaging or for orchestration based scenarios. If, for example, you have the need for “important” orchestrations to be executed “faster” (i.e. less time spent in MsgBoxDB), then you can even decrease the polling interval further (the minimum being 50ms) The following table gives you an indication of values you can set to optimise the intervals.
|Host||Messaging Interval||Orchestration Interval|
|“Important” Orchestration Host||250000||50|
|“Normal” Orchestration Host||250000||500|
These setting are found on the Hosts | General tab in the BizTalk Administration console. 2. Disable Host Tracking Host tracking should be disabled as a general rule of thumb. The exception being if you need to track, and that should be in the dedicated tracking host. This is done by de-selecting the checkbox on the Hosts | General tab in the BizTalk Administration console. 3. Increase Host Instance Threading Values For non-tracking host instances, the default .Net CLR threading values should be increased to improve throughput. These values are found in the Host Instance | .NET CLR tab within the BizTalk Administration Console.
|Threading Setting||Suggested Value|
|Maximum Worker Threads||100|
|Minimum Worker Threads||25|
4. Increase Host Process Virtual Memory Throttling Boundary By default, hosts are set to throttle to conserve system resources when their virtual memory allocation exceeds 25% of the available memory of the BizTalk application server. This system default is too low and may cause intermittent processing latency due to BizTalk being in a throttling state. For each of your hosts (except the Tracking host), increase the value to 75%. The process virtual memory setting is found on the Host | Resource-Based Throttling tab within the BizTalk Administration Console. 5. Increase Host Message Queue Size and In-Process Message Count For each of your hosts (except the Tracking host), increase the values as shown in the table below.
|Internal Message Queue Size||10000|
|In Process Messages||10000|
These settings can be found on the Hosts | Resource-Based Throttling tab in the BizTalk Administration console. I hope these tips help bring out that little (or large) extra bit of performance out of your BizTalk application. Until next tip… be good!