Re: [load balancing] Rate limiting SOAP transactions

From: Kenneth Salchow <k.salchow [izzat] f5.com>
Date: Wed Feb 25 2009 - 17:24:54 EST

Eric,

 

I too am not an iRules expert and while I've seen a few discussion on this
list in the past-the better place for this particular discussion is our
DevCentral site (http://devcentral.f5.com/). This site is pretty much
dedicated to iRules and iControl development and, while we (F5) obviously
host and participate, a great deal of the actual iRules comes from other
customer just like you who are trying to solve specific and unique
application delivery challenges.

 

In particular, I was told that the following resources might be of
particular interest:

 

1. Rate limiting per user/IP
https://devcentral.f5.com/Default.aspx?tabid=53
<https://devcentral.f5.com/Default.aspx?tabid=53&forumid=5&postid=3691&view=
topic> &forumid=5&postid=3691&view=topic

2. Rate limiting search spiders
http://devcentral.f5.com/Default.aspx?tabid=53
<http://devcentral.f5.com/Default.aspx?tabid=53&forumid=5&postid=26064&view=
topic> &forumid=5&postid=26064&view=topic

 

We don't have anything specifically on rate limiting SOAP, but these
discussions could provide the basics for how to write the rate limiting
iRule itself, and then modify if using the appropriate data from the msg
body if you can pull it out.

 

So, the short answer is 'yes, you should be able to do what you want'. The
more qualified answer is that, like so many of these challenges, it really
depends on the data you are using and the specifics of your application. I
hope that DevCentral can help you.

 

 

KJ (Ken) Salchow, Jr. | Manager, Technical Marketing

 

From: lb-l-bounces@vegan.net [mailto:lb-l-bounces@vegan.net] On Behalf Of
Rosenberry, Eric
Sent: Wednesday, February 25, 2009 1:37 PM
To: Load Balancing Mailing List
Subject: [load balancing] Rate limiting SOAP transactions

 

I am looking for a way to rate limit how many SOAP transactions per second
that a given customer can send us such that any given customer could not
overload the system and cause impact to other customers. As an example, say
our system can handle 1000 transactions per second and our normal load from
all customers is 500 tps. If a given customer has a huge traffic increase
they could overload the system and cause issues for other well behaving
customers.

 

Would it be possible in the F5 (probably through the use of an iRule) to
identify traffic from a specific customer (preferably based on data within
the soap payload, but I suspect in reality it would have to be based on
source IP) and then track what the current transaction rate is and in some
way block connections exceeding the limit? I assume to block it would
require just terminating the session, though optimally we would send back a
soap error or even http error.

 

Not being an expert in iRules myself I am mostly wondering if the F5 can
even implement a rate tracking and limiting capability within TCL that would
perform even remotely well.

 

Any suggestions are appreciated.

 

-Eric

_______________________________________________________________
Eric Rosenberry
Sr. Network Engineer | Chief Bit Plumber
Direct +1. 503.943.6763 | Mobile: +1.503.348.3625 | Fax: +1.503.224.1581

 

 
iovation
111 SW Fifth Avenue
Suite 3200
Portland, OR 97204
www.iovation.com <http://www.iovation.com/>
 
The information contained in this email message may be privileged,
confidential and protected from disclosure. If you are not the intended
recipient, any dissemination, distribution or copying is strictly
prohibited. If you think that you have received this email message in error,
please notify the sender by reply email and delete the message and any
attachments.

_______________________________________________
lb-l mailing list
lb-l@vegan.net
http://vegan.net/mailman/listinfo/lb-l
Searchable Archive: http://vegan.net/lb/archive
http://lbdigest.com Load Balancing Digest
http://lbwiki.com Load Balancing Wiki

Received on Wed Feb 25 17:25:02 2009

This archive was generated by hypermail 2.1.8 : Wed Feb 25 2009 - 17:25:02 EST