Diagnosing poor Sql server broker forwarding performance

For several months I worked with Service Broker in my development environment and had excellent performance, up to 1000 messages per second (a lot for my needs).

I also worked with a cutting copy of my real production environment, which includes a copy of the forwarding, and for the first time today pushed him some workload with terrifying results! I'm trying to understand what I see, but I'm struggling a bit, so I thought I would say if anyone could help.

Firstly, messages are delivered from beginning to end through a forwarder. However, when I pressed several thousand messages, I saw lots from 20 to 100, which were sent with a delay of minutes or two. Messages are ultimately processed successfully.

Looking at the lineup in the Store (original sender), thousands of messages are sitting, waiting to be forwarded, which they dig up.

The security setting is as follows:

Store database -> Certificate -> Forwarding instance -> Windows Security -> Central database 

When I turn on profilers, I see a lot of errors:

Some examples of a shipment instance:

 7 - Send IO Error (10054(failed to retrieve text for this error. Reason: 15105)) Forwarded Message Dropped (The forwarded message has been dropped because a transport send error occurred when sending the message. Check previous events for the error.) 

And on my β€œcentral” target instance:

 A corrupted message has been received. The binary message preamble is malformed. Broker message undeliverable This message was dropped because it could not be dispatched on time. State: 2 

Can someone help by pointing me to some checks that I could do, or maybe something obvious that I missed. I know that something is wrong with me, but I just don’t see that.

Edit - 14/1/2011 - additional information: More information about this - we deduced our copy of message forwarding from the equation and immediately saw massive improvements - 2000 messages were delivered in a few seconds.

The architecture uses transport security, so we are currently trying to move to dialogue security, as we read that transport security / forwarding can be detrimental to performance. We hope that Dialog security will somehow optimize what needs to be decrypted by the forwarding instance, thereby improving performance.

First of all, I want to disable encryption at the transport level (between the initiator and the forwarder) to find out if this is our bottleneck. Is it possible that this could cause a lot of overhead in our messages or if one copy of the forwarding does not create such a big bottleneck?

+2
source share
3 answers

What version of SQL Server?

Several forwarding performance issues have been fixed. I recommend that you upgrade to the latest SQL Server 2008 R2 and deploy the latest cumulative updates. If updating in your environment is problematic, you can only upgrade the forwarding instance.

+3
source

This might be a dumb suggestion, but have you changed your network topology lately? Maybe changed the network cable or overheated the switch? If this happens suddenly, it sounds more like a physical change than a logical change. I would check the Windows event log on both machines.

0
source

Yes, Dialog Security is the best approach combined with forwarders. Otherwise, the overhead will be huge.

-1
source

Source: https://habr.com/ru/post/1335405/


All Articles