Sipke arrest inconsistency

Hello,

The requirement was to allow 5 request per sec (does not depend on which millisec the req comes in).

Initially, I set the limit to 5ps . Observed failures with spike arrest even if the req within a sec was less than 5.  Later understood that per sec gets divided into intervals of 200ms with 5ps.

<SpikeArrest continueOnError="false" enabled="true" name="Spike-Arrest-1">
<DisplayName>Spike Arrest-1</DisplayName>
<Rate>5ps</Rate>
<UseEffectiveCount>false</UseEffectiveCount>
</SpikeArrest>

Then I set the limit to 300pm (pm gets divided into interval of sec and would able to process 5 req successfully.)

<SpikeArrest continueOnError="false" enabled="true" name="Spike-Arrest-1">
<DisplayName>Spike Arrest-1</DisplayName>
<Rate>300pm</Rate>
<UseEffectiveCount>false</UseEffectiveCount>
</SpikeArrest>

With his config we were able to process around 40 req within a sec successfully which is not expected ideally.

Can anyone can guide on this.

 

 

 

 

0 1 90
1 REPLY 1

This behavior is likely due to `UseEffectiveCount` being set to `false`. According to the docs:

If set to true, SpikeArrest is distributed in a region. That means request counts are synchronized across message processors (MPs) in a region. In addition, a "sliding window" rate limiting algorithm is employed. This algorithm provides consistent rate limit behavior and does not "smooth" the number of incoming requests that can be sent to the backend. If a burst of requests are sent in a short time interval, they are allowed as long as they do not exceed the configured rate limit, as set in the <Rate> element.