The Active Caching feature depends on the following two processes:
- A gathering process
- An update process
If an object is requested after it has expired, and the request is in a period of time that is "N times past its original Time to Live (TTL)", the gathering process enters the object into the Update list. The object can remain in the Update list if it is requested at least every N times its TTL.
The value of "N" is determined based on what the user selects in the
Active Caching dialog box, for example:
Frequently: N = 3
Normally: N = 2
Less Frequently: N = 1
For example, if an object has a value of TTL equals (=) 1 day, and you click
Normally in the user interface, the object remains in the Update list if it is requested at least once every 2 days.
Then, the update process attempts to update all of the objects in the Update list before they expire. The occurrence of this process is dependent on the load of ISA Server. The system load is measured by the number of current Web sessions in comparison to the maximum number of Web sessions that have occurred. In regards to the system load:
- If the system load is from 0 through 25 percent, the update process scans the entire list for objects that have passed 50 percent of their TTL, and then updates them.
- If the system load is from 25 through 75 percent, the update process scans the list for objects that have passed at least 75 percent of their TTL and that are scheduled to expire in the next 7.2 minutes.
- If the system load is from 75 through 100 percent, the update process scans the list for objects that have passed at least 95 percent of their TTL and that are scheduled to expire in the next 3.6 minutes.
The setup of the system load ensures that a busy server is not overwhelmed by the update requests and that the less busy times are used to obtain content that is relatively popular.
You must set the frequency after you have made a careful observation of the patterns of Web usage and cache-hit ratios by using the reporting features of ISA Server.
The objective of enabling the Active Caching feature and manually setting TTL values is to increase the cache-hit ratio. Careful testing can help you to determine if the Active Caching feature is going to be useful or not in your environment. If the feature is useful, you need to find which specific frequency and TTL setting obtains the best results for your environment.
This process can easily be counterproductive if a large number of objects that are being requested have a low TTL, by default, and a few users request the same site. This behavior can cause the server to have objects added to the Update list only because they had been requested more than once, and they may not be requested again. In this situation (for example, with news sites), the first two users to the site in the morning can cause the objects to be added to the Update list. Because the TTL is low on these objects, they are scheduled for pending updates, which can cause an additional load on the uplink.
In situations where the objects that are being cached have low TTL values, you can consider setting the cache properties to manually override the TTL of the object.