Rate Limit Module Implementation

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Rate Limit Module Implementation

Ben Newlin

Hello,

 

We are looking to implement some rate limiting using the module, but I have a few questions and wanted to see if anyone has run into the same issues or has working experience with the module to answer them.

 

The module provides $rl_count and also a counter value in the output of the rl_list command, but both of these values only reflect the number of rl_check calls that were made in the time window. In the case of TAILDROP, RED, and SBT algorithms, the count is directly related to the limit and drop_rate. But for the NETWORK and FEEDBACK algorithms, the counter is essentially meaningless.

 

What we are looking for is a way to track the values these modules are using to make drop decisions, so that we can set our limit value appropriately. But unless I am missing something, there is no way to access these values for either NETWORK or FEEDBACK. Is that correct?

 

Ben Newlin


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Rate Limit Module Implementation

Ben Newlin

As a follow up to this, when I tried to set the limit for the FEEDBACK algorithm to 0 for testing, I received this error:

 

invalid limit for FEEDBACK algorithm (must be between 0 and 100)

 

Per the documentation this algorithm should be tracking CPU Load, but the range being 0 to 100 makes me wonder if it is actually reporting a percentage, similar to the load statistics exported by OpenSIPS core [1].

 

Can anyone using this module clarify what unit the limit for this algorithm is expected to be in? The ambiguity is one of the reasons I had wanted to track the values being obtained for a time before actually engaging limited, which is what prompted my original question.

 

[1] - https://www.opensips.org/Documentation/Interface-CoreStatistics-2-4#toc14

 

Ben Newlin

 

From: Users <[hidden email]> on behalf of Ben Newlin <[hidden email]>
Reply-To: OpenSIPS users mailling list <[hidden email]>
Date: Thursday, November 14, 2019 at 3:45 PM
To: OpenSIPS users mailling list <[hidden email]>
Subject: [OpenSIPS-Users] Rate Limit Module Implementation

 

Hello,

 

We are looking to implement some rate limiting using the module, but I have a few questions and wanted to see if anyone has run into the same issues or has working experience with the module to answer them.

 

The module provides $rl_count and also a counter value in the output of the rl_list command, but both of these values only reflect the number of rl_check calls that were made in the time window. In the case of TAILDROP, RED, and SBT algorithms, the count is directly related to the limit and drop_rate. But for the NETWORK and FEEDBACK algorithms, the counter is essentially meaningless.

 

What we are looking for is a way to track the values these modules are using to make drop decisions, so that we can set our limit value appropriately. But unless I am missing something, there is no way to access these values for either NETWORK or FEEDBACK. Is that correct?

 

Ben Newlin


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
Reply | Threaded
Open this post in threaded view
|

Re: Rate Limit Module Implementation

Ben Newlin

Some testing of this has convinced me that the FEEDBACK algorithm is not actually tracking CPU Load as is claimed by the documentation. I believe it is actually checking CPU Utilization as a percentage. But since the values in the module are not exposed I cannot be sure.

 

The lack of response on this question leads me to believe the rate_limit module, or perhaps just the NETWORK and FEEDBACK algorithms, are not widely used so I may just avoid them.

 

Ben Newlin

 

From: Users <[hidden email]> on behalf of Ben Newlin <[hidden email]>
Reply-To: OpenSIPS users mailling list <[hidden email]>
Date: Friday, November 15, 2019 at 5:09 PM
To: OpenSIPS users mailling list <[hidden email]>
Subject: Re: [OpenSIPS-Users] Rate Limit Module Implementation

 

As a follow up to this, when I tried to set the limit for the FEEDBACK algorithm to 0 for testing, I received this error:

 

invalid limit for FEEDBACK algorithm (must be between 0 and 100)

 

Per the documentation this algorithm should be tracking CPU Load, but the range being 0 to 100 makes me wonder if it is actually reporting a percentage, similar to the load statistics exported by OpenSIPS core [1].

 

Can anyone using this module clarify what unit the limit for this algorithm is expected to be in? The ambiguity is one of the reasons I had wanted to track the values being obtained for a time before actually engaging limited, which is what prompted my original question.

 

[1] - https://www.opensips.org/Documentation/Interface-CoreStatistics-2-4#toc14

 

Ben Newlin

 

From: Users <[hidden email]> on behalf of Ben Newlin <[hidden email]>
Reply-To: OpenSIPS users mailling list <[hidden email]>
Date: Thursday, November 14, 2019 at 3:45 PM
To: OpenSIPS users mailling list <[hidden email]>
Subject: [OpenSIPS-Users] Rate Limit Module Implementation

 

Hello,

 

We are looking to implement some rate limiting using the module, but I have a few questions and wanted to see if anyone has run into the same issues or has working experience with the module to answer them.

 

The module provides $rl_count and also a counter value in the output of the rl_list command, but both of these values only reflect the number of rl_check calls that were made in the time window. In the case of TAILDROP, RED, and SBT algorithms, the count is directly related to the limit and drop_rate. But for the NETWORK and FEEDBACK algorithms, the counter is essentially meaningless.

 

What we are looking for is a way to track the values these modules are using to make drop decisions, so that we can set our limit value appropriately. But unless I am missing something, there is no way to access these values for either NETWORK or FEEDBACK. Is that correct?

 

Ben Newlin


_______________________________________________
Users mailing list
[hidden email]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users