BizTalk Services: Throttling
Azure BizTalk Services implements Service throttling based on two conditions: memory usage and the number of simultaneous messages processing. This topic lists the throttling thresholds and describes the Runtime behavior when a throttling condition occurs.
The following table lists the throttling source and thresholds:
| ||Description ||Low Threshold ||High Threshold |
|Memory ||% of total system memory available/PageFileBytes. |
Total available PageFileBytes is approximately 2 times the RAM of the system.
|60% ||70% |
|Message Processing ||Number of messages processing simultaneously ||40 * number of cores ||100 * number of cores |
When a high threshold is reached, Azure BizTalk Services starts to throttle. Throttling stops when the low threshold is reached. For example, your service is using 65% system memory. In this situation, the service does not throttle. Your service starts using 70% system memory. In this situation, the service throttles and continues to throttle until the service uses 60% (low threshold) system memory.
Azure BizTalk Services tracks the throttling status (normal state vs. throttled state) and the throttling duration.
When Azure BizTalk Services enters a throttling state, the following occurs:
- Throttling is per role instance. For example:
RoleInstanceA is throttling. RoleInstanceB is not throttling. In this situation, messages in RoleInstanceB are processed as expected. Messages in RoleInstanceA are discarded and fail with the following error:
Server is busy. Please try again.
- Any pull sources do not poll or download a message. For example:
A pipeline pulls messages from an external FTP source. The role instance doing the pull gets into a throttling state. In this situation, the pipeline stops downloading additional messages until the role instance stops throttling.
- A response is sent to the client so the client can resubmit the message.
- You must wait until the throttling is resolved. Specifically, you must wait until the low threshold is reached.
- Throttling cannot be disabled.
- Throttling thresholds cannot be modified.
- Throttling is implemented system-wide.
- The Azure SQL Database Server also has built-in throttling.
Additional Azure BizTalk Services topics