Adaptive response predictor

Unanswered Question
May 20th, 2009

Hi!

I need to understand better how the Adaptive response predictor, works.

In the site of cisco I found this:

Cisco ACE adds several new intelligent load-balancing predictors.

The Cisco ACE predictor selects a server based on its response time. Response times are calculated over a user-configured number of samples, with the following three measurement options supported:

• SYN-to-SYN-ACK: Server response time between SYN sent from Cisco ACE to SYN-ACK received from server

• SYN-to-Close: Server response time between SYN sent from Cisco ACE to FIN/RST received from server.

• Application Request to Response: Server response time between HTTP request sent from Cisco ACE to HTTP response received from server

The measure of time is related to the traffic that pass trought the ACE or is originating from ACE ?

What is the frequency of this conections ? 8 samples in what time?

This is done by probes or is an extra connection ?

What to choose ( SYN-ACK OR SYN-FIN) ?

What is the consequence of increasing the number o samples?

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 0 (0 ratings)
Loading.
sachinga.hcl Thu, 05/21/2009 - 04:02

Hi Paul,

To instruct the ACE to select the server with the lowest average response time for the specified response-time measurement based on the current connection count and server weight (if configured), use the predictor response command in server farm host or redirect configuration mode. This predictor is considered adaptive because the ACE continuously provides feedback to the load-balancing algorithm based on the behavior of the real server.

To select the appropriate server, the ACE measures the absolute response time for each server in the server farm and averages the result over a specified number of samples (if configured). With the default weight connection option configured, the ACE also takes into account the server's average response time and current connection count. This calculation results in a connection distribution that is proportional to the average response time of the server.

The syntax of this command is as follows:

predictor response {app-req-to-resp | syn-to-close | syn-to-synack}[samples number]

The keywords and arguments are as follows:

•app-request-to-resp-Measures the response time from when the ACE sends an HTTP request to a server to the time that the ACE receives a response from the server for that request.

•syn-to-close-Measures the response time from when the ACE sends a TCP SYN to a server to the time that the ACE receives a CLOSE from the server.

•syn-to-synack-Measures the response time from when the ACE sends a TCP SYN to a server to the time that the ACE receives the SYN-ACK from the server.

•samples number-(Optional) Specifies the number of samples over which you want to average the results of the response time measurement. Enter an integer from 1 to 16 in powers of 2. Valid values are 1, 2, 4, 8, and 16. The default is 8.

For example, to configure the response predictor to load balance a request based on the response time from when the ACE sends an HTTP request to a server to when the ACE receives a response back from the server and average the results over four samples, enter:

host1/Admin(config)# serverfarm SFARM1

host1/Admin(config-sfarm-host)# predictor response app-req-to-resp

samples 4

To reset the predictor method to the default of round-robin, enter:

host1/Admin(config-sfarm-host)# no predictor

To configure an additional parameter to take into account the current connection count of the servers in a server farm, use the weight connection command in server farm host predictor configuration mode. By default, this command is enabled. The syntax of this command is as follows:

weight connection

For example, enter:

host1/Admin(config)# serverfarm SF1

host1/Admin(config-sfarm-host)# predictor response app-request-to-resp

samples 4

host1/Admin(config-sfarm-host-predictor)# weight connection

To remove the current connection count from the calculation of the average server response time, enter:

host1/Admin(config-sfarm-host-predictor)# no weight connection

Kindly rate if possible.

Kind Regards,

Sachin Garg

paulorosa Thu, 05/21/2009 - 18:29

Hi!

I have already configured!

I choose the syn-ack , but I am considering to go to sync-close.

But what is best ? in wich case ? can you advice ?

Why or when should I increase ou decresase the number of samples ?

So if understand it's the ace that generate the traffic, to measure the response.But what is the frequency ?

In my show serverfarm detail , I see the response arround 90 usec , and takes some time to change the value ( 10 seconds or more) . So I guess that ACE is not always generating traffic.

The value that the show serverfarm details , shows is the average for the 8 samples , right ?

Last thing, normaly the response time it's arrond 90 usec for all servers in serverfarm, but some times some servers go as 20 times or highger (ex: 1800 usec) and return to normal again, can this be an problem with the server ? because this can happen even when the server as almost no connections.

Thanks and Regards!!

sachinga.hcl Fri, 05/22/2009 - 21:20

Hi Paul,

You can use threshold milliseconds parameter which is optional Specifies the required minimum average response time for a server. If the server response time is greater than the specified threshold value, the ACE removes the server from the load-balancing decision process (takes the server out of service).

Enter an integer from 1 to 300000 milliseconds (5 minutes). The default is no threshold (servers are not taken out of service).

In case if you have measures the response time from when the ACE sends a TCP SYN to a server to the time that the ACE receives a CLOSE from the server use syn-to-close

If you have to measures the response time from when the ACE sends a TCP SYN to a server to the time that the ACE receives the SYN-ACK from the server use syn-to-synack

SAMPLES parameter is optional and specifies the number of samples that you want to average from the results of the response time measurement and response time is used to select the server with the lowest response time for the requested response-time measurement. If you do not specify a response-time measurement method, the ACE uses the HTTP app-req-to-response method.

Whenever a server's load reaches zero, by default, the ACE uses the autoadjust feature to assign a maximum load value of 16000 to that server to prevent it from being flooded with new incoming connections. The ACE periodically adjusts this load value based on feedback from the server's SNMP probe and other configured options.

Using the least-loaded predictor with the configured server weight and the current connection count option enabled, the ACE calculates the final load of a real server as follows:

final load = weighted load × static weight × current connection count

where:

•weighted load is the load reported by the SNMP probe

•static weight is the configured weight of the real server

•current connection count is the total number of active connections to the real server

The ACE recalculates the final load whenever the connection count changes, provided that the (config-sfarm-host-predictor) weight connection command is configured. If the (config-sfarm-host-predictor) weight connection command is not configured, the ACE updates the final load when the next load update arrives from the SNMP probe.

If two servers have the same lowest load (either zero or nonzero), the ACE load balances the connections between the two servers in a round-robin manner.

sachinga.hcl Mon, 06/01/2009 - 10:41

Did you find this is of any use to u or not.

Plz tell.

Kind regards

Sachin Garg

paulorosa Thu, 06/04/2009 - 03:41

I Think the answers are ok , since I learn from them.

But the main question stills as no answer.

How realy work Adaptive predictor ?

Is the ACE that send's the traffic to calculate the measure, or ACE just measure the traffic that pass-through and measure the actual traffic that the client send to the server?

Some time ago I have tested the Adaptive predictor and I install a sniffer on server, and I remember that if no probes are configured, no traffic is send from the ACE to Server.

So I guess that Ace doesn't generate nothing, It measure the traffic that pass-trought.

I am not sure since it was longtime ago.

sachinga.hcl Thu, 06/04/2009 - 05:09

Hi Paul,

If you think the answers are ok , since you learn from them i would like to thank you for your comments.

Can you send me your configuration regarding this predictor so that I can understand actually what is happening on your device.

Without looking into your configuration it will be difficult to comment any.

paulorosa Thu, 06/04/2009 - 05:45

The clients enter in port 80 and when they get the configuration file x.dat the oracleforms open a connection to port 9001.

If the client print, a pdf is generated and is put in the http server for download.

I chose syn-ack. Since the connection for TCP port 9001 can be opened for 4 hours or more.

As you can see the serverfarm that have no connections BBB_FARM didn't have any response time calculated.

So I say again that the traffic is not generated by ACE, but is the traffic that passes trough the ace. (From client to server, maybe measure from the moment it passes from ACE to Server)

In attach an example of the production context.

ACE1/prod# show serverfarm AAA_FARM detail

serverfarm : AAA_FARM, type: HOST

total rservers : 11

active rservers: 11

description : ServerFarm AAA

state : ACTIVE

predictor : RESPONSE

method : syn-to-synack

samples : 8

failaction : -

back-inservice : 0

partial-threshold : 0

num times failover : 0

num times back inservice : 0

total conn-dropcount : 0

Probe(s) :

HTTP_PROBE, type = HTTP

TCP9001_PROBE, type = TCP

---------------------------------

----------connections-----------

real weight state current total failures

---+---------------------+------+------------+----------+----------+---------

rserver: SC106

x.x.x.x.:0 8 OPERATIONAL 2 1125 0

max-conns : 4000000 , out-of-rotation count : 0

min-conns : 4000000

conn-rate-limit : - , out-of-rotation count : -

bandwidth-rate-limit : - , out-of-rotation count : -

retcode out-of-rotation count : -

load value : 0

average response time (usecs) : 81

----

.

.

.

.

----

From other day :

rserver: SC114

x.x.x.x:0 8 OPERATIONAL 70 10903 2

max-conns : 4000000 , out-of-rotation count : 0

min-conns : 4000000

conn-rate-limit : - , out-of-rotation count : -

bandwidth-rate-limit : - , out-of-rotation count : -

retcode out-of-rotation count : -

load value : 0

average response time (usecs) : 1334

-----

serverfarm : BBB_FARM, type: HOST

total rservers : 1

active rservers: 1

description : ServerFarm BBB

state : ACTIVE

predictor : RESPONSE

method : syn-to-synack

samples : 8

failaction : -

back-inservice : 0

partial-threshold : 0

num times failover : 1

num times back inservice : 1

total conn-dropcount : 0

Probe(s) :

---------------------------------

----------connections-----------

real weight state current total failures

---+---------------------+------+------------+----------+----------+---------

rserver: SC208

x.x.x.x:0 8 OPERATIONAL 0 0 0

max-conns : 4000000 , out-of-rotation count : 0

min-conns : 4000000

conn-rate-limit : - , out-of-rotation count : -

bandwidth-rate-limit : - , out-of-rotation count : -

retcode out-of-rotation count : -

load value : 0

average response time (usecs) : 0

Attachment: 

Actions

This Discussion