ServicePulse Monitoring - Throughput

Hello!

I have a scenario where I’m scaling out horizontally.

My question is, should the throughput increase relative to the improvement in the critical time?

2 Nodes

4 Nodes

Notes

  • I’ve confirmed that SQL server is not bottlenecking
  • The number of concurrent processing for each node is 14

Thank you.

Michael

Hi Michael,

It’s very unlikely you’ll see that kind of direct correlation between message throughput and critical time. Critical time is a combination of several metrics, including network send time, processing time, and the time it takes waiting in the queue. A lot of things can affect one or more of these factors.

As an example, increasing message throughput may place a higher burden on third party services (like APIs or databases) so that processing messages takes longer per message. The increased throughput may also increase the error rate so a message may get returned to the queue for delayed retries more often.

These factors come into play regardless of whether you’re using NServiceBus or native queuing technologies. We typically recommend that you determine what the acceptable SLAs are for certain key metrics (and critical time is usually one of them) that are important to your customers and take measures to achieve that without over-optimizing metrics that don’t contribute to those SLAs.

– Kyle

Also, on SQL transport messages are only actually send when the transport transaction is committed for transaction mode TransactionScope and SendsAtomicWithReceive. This means that also the actual processing duration and commit duration impacts the critical time of send messages.

Thank you for the reply Kyle, Ramon. We will assess the burden on the 3rd party services you mentioned.

Michael.