Throttling

In Biztalk sometimes we see that performance of server is going down. Suddenly server has become slow.

Most of times this would be because of Host throttling.

Now, what is Host Throttling? :) ... Refer Link https://msdn.microsoft.com/en-us/library/aa559591.aspx

The throttling mechanism moderates the workload of the host instance to ensure that the workload does not exceed the capacity of the host instance or any downstream host instances. 

There are lot of scenarios because of which Host throttles. It can be because of Low Process Memory, High DB Size,high thread count and some more

It is very easy to find out reason for throttling .For this ..Go to Start--> Run -->Type perfmon --> Go to report (As shown in Following Figure)

clip_image002[4]

After Going to Report , Select Counters Biztalk: Message Agent .

clip_image002[6]

And Then Select all Counters and all Instances , Click Add.

image

There are two record which I have highlighted, This are throttling State for Publishing and Delivery, This state will let us know if Biztalk is throttling or not

If value of this state is Zero it means there is no throttling . But if value of State other than Zero than it is throttling and using below table you can know what type of throttling it is.

Message delivery throttling state

A flag indicating whether the system is throttling message delivery (affecting XLANG message processing and outbound transports).

  • 0: Not throttling
  • 1: Throttling due to imbalanced message delivery rate (input rate exceeds output rate)
  • 3: Throttling due to high in-process message count
  • 4: Throttling due to process memory pressure
  • 5: Throttling due to system memory pressure
  • 9: Throttling due to high thread count
  • 10: Throttling due to user override on delivery

Message publishing throttling state

A flag indicating whether the system is throttling message publishing (affecting XLANG message processing and inbound transports).

  • 0: Not throttling
  • 2: Throttling due to imbalanced message publishing rate (input rate exceeds output rate)
  • 4: Throttling due to process memory pressure
  • 5: Throttling due to system memory pressure
  • 6: Throttling due to database growth
  • 8: Throttling due to high session count
  • 9: Throttling due to high thread count
  • 11: Throttling due to user override on publishing

Refer Following link for more information https://msdn.microsoft.com/en-us/library/aa578302.aspx

So By looking at state you can know Reason for Throttling. Depending on the state you can find the Solution

For Eg: If Message Publishing Throttling State is 6 then it is because of High DB Size . High DB Size can be if you are not properly maintaining Biztalk DB. This can be because Not all Required Jobs are running . You need to have look at Jobs here.

If Message Publishing Throttling State is 4, it can be because of  Low Process Memory Pressure.

You can go  to Host , Properties and Throttling Threshold. Here you can increase Process Memory and check if throttling is gone.

clip_image002[9]

Host has lot of setting related to throttling . You can refer to this article https://msdn.microsoft.com/en-us/library/aa559628.aspx to understand more about this settings.

Hope this helps.