When balance aca is configured on a content rule, what are the determining factors related to the load-balancing decision? I understand it to be related to response time of the service, but what exactly is the service responding to? Is this a PING to the service VIP? Is it possible to view these response times on a per-service level? Please advise.
The ACA algorithm is a load balancing algorithm that was designed to optimize a web sites performance because it prefers servers with better response times over servers with worse response times. The Content Smart Web Switch (such as the CSS 11000 and 11500) uses the normalized average response times from synchronize/start (SYN) to finish (FIN) of the TCP connections between clients and servers to determine a load value for each server. The server with the lowest average response time is given a load value of 2. The load ranges are from 2 to 255, and they are calculated separately for long and short (<15K) files and then averaged together. A server with a value of 255 is brought out of rotation. As the load value increases for a server, the less requests ACA sends to it. The algorithm that ACA uses to pull the server out of rotation is not linear, therefore, the server with a load value of 200 is hit much, much less than a server with a load value of 12, as compared with a server with a load of 2.
There are two parameters that can be used to modify the load values of the servers. The first is the load step. The load step is 10 milliseconds by default. The load step refers to the difference between each load value. A service with a load of 3 compared to a service with a load of 2 has a response time that is 10 milliseconds worse. A service with a load of 10 compared to a service with a load of 2 has a response time that is 80 milliseconds worse.
The second value that can be used to modify load is the load teardown-timer. The load teardown-timer is used to set the maximum time between teardown reports. Teardown reports are used to derive the load number for a service; they include a summary of response times for services when flows are being torn down. If your CSS does not have a high volume of flows, you may want to decrease the load teardown-timer so that the load value gets calculated more often, and therefore causes the CSS to become more reactionary when you use ACA.
There are two values that can be adjusted to modify the behavior of ACA. The load-threshold is used to determine when a service should be brought out of rotation. The default value is 254. If you determine that your sites performance is hindered when a service reaches a load of 100, you can change the load threshold to 99, which would cause these servers to come out of rotation. Since ACA uses the load value to determine how many requests it should send a server, past performance values are used to make load balancing decisions. If a service is not hit, the CSS has no data to make future load balancing decisions. Periodically, ACA causes the "bad" service to be hit so that it can determine if it has recovered. The load ageout-timer is the time in seconds that the CSS does not hit a server that has exceeded the load threshold. If you want to attempt to bring the server back sooner, you could decrease this value; the default is 60 seconds. If your server typically takes a longer time to recover than 60 seconds, you want to increase this value.