Flexible request decimation

Posted by on October 17th, 2011

Some sites are subject to huge spikes in traffic. During these spikes you may have components of your site that prone to outage. While we would love to help you fix this, we live in the real world, and understand it’s not perfect. So we made Flexible Request Decimation.

You can configure aiScaler to apply flexible request decimation logic in a number of ways.
For example, should your site be bombarded by certain requests that you don’t mind replying to under normal, low load conditions, yet would like to decimate when traffic starts to spike.

In its most basic form, you simply tell aiScaler to allow a portion of the matching traffic to be allowed through via decimate_req, no matter the load:

Example:
____________________________________
pattern notalwaysthere.asp simple 0
decimate_req 10 # Only let through 1/10 of the traffic
____________________________________

In more evolved setup, you can configure aiScaler to apply decimation when load (pattern or website-level RPS) exceed certain threshold:

____________________________________
pattern notalwaysthere.asp simple 0
decimate_req 10 # Only let through 1/10 of the traffic
decimate_req_pat_rps 100 # Only decimate when this pattern sees more than 100 RP
____________________________________

Or, testing against website-level RPS

____________________________________
pattern notalwaysthere.asp simple 0
decimate_req 10 # Only let through 1/10 of the traffic
decimate_req_ws_rps 400 # Only decimate when this website sees more than 400 RP
____________________________________

When activating pattern-level decimation in this load-driven fashion, aiScaler will turn the decimation on for 60 seconds, before re-testing for the load condition and possibly turning decimation off. You can change this interval by setting decimate_req_interval pattern-level setting. You can think of this interval as a hysteresis feature.

____________________________________
pattern notalwaysthere.asp simple 0
decimate_req 10 # Only let through 1/10 of the traffic
decimate_req_ws_rps 400 # Only decimate when this website sees more than 400 RPS
decimate_req_interval 600 # decimate for 10 mins before retesting the load condition
____________________________________

Note that when requests are decimated in such fashion, they are silently and instantly dropped, to reduce the load on aiScaler. No grace responses and/or redirection of any sort is sent back to the requesting clients.

Also note that aiScaler automation activates pattern-level stat gathering when you enable request
decimation.

The number of decimated requests is reported via usual means – the Web, CLI and SNMP stats.

If your in this boat (And you now who you are) you probably want to look at this as well.
Bending the TTL’s. Dynamic traffic adaptation by aiScaler

Leave Comment

US 1 (408) 744-6078   EU +44 20 7993 4587