Hello Tornell,
Background:
The basic approach is to add one or more cache servers as follows:
Clients <-> Cache Server <-> Back End Servers
Each http request to a site will be handled by the cache server. For
static content that is already present at the cache server, the
results will be returned immediately. For the dynamic content (or
static content not yet loaded), the cache server makes requests from
one or more back end servers to provide the latest data to the client
system. This results in:
- What the user on each client sees is faster page loads
- The load on the back end servers goes down, providing faster look
up of dynamic data
- There is some additional complexity in system set up and maintenance
Specific Answer:
When you start using a cache server - its cache (local copy of web
pages) will be empty. You "warm up" the cache by either:
- preloading the static pages from the back end systems
- do nothing; the clients making requests will load pages and
naturally fill the cache with the static data
In the second case, performance will start relatively poorly but
improve rapidly as the cache is filled with frequently used pages.
Commercial Products / Explanations:
Several vendors provide products. Here are a few technical
descriptions / marketing pages to provide further information.
http://www1.us.dell.com/content/topics/global.aspx/power/en/ps2q00_power?c=us&cs=555&l=en&s=biz
Has several good illustrations of the network connections / how
requests are made when putting a Dell caching server into a web farm.
http://www.microsoft.com/technet/prodtechnol/cms/evaluate/cmsperft.mspx
Results of measuring Microsoft's Content Management Server - showing
scalability (by adding front end servers / load balancing) and
improved performance under relatively heavy loads.
http://www.oracle.com/technology/products/ias/web_cache/OracleAS-Web-Cache-10g-904-faq.html
A FAQ for Oracle's web cache product. Note several additional
capabilities that are provided by this product (beyond basic caching
of static content). You may find similar capabilities in other
companies products.
Related Information:
Not necessarily specific to a server side cache / warm up, but can be
used to help improve performance of web pages or explain related
concepts.
http://www.web-polygraph.org/
A group offering free benchmarks including tests for web caches (WebAxe-1).
http://www.web-caching.com/proxy-caches.html
See also proxy caches - which provide similar performance improvements
on the client side. This site has a number of links to other products
- some can be used as client or server side caches.
http://www.icewalkers.com/Linux/Software/520590/Turck-MMCache.html
This is a PHP accelerator - providing several optimizations of PHP
based server pages. In part, does caching. Runs on the server
providing dynamic content.
http://www.cs.utexas.edu/users/dahlin/Classes/WebOS/hw/cache-simulator.html
A course at the University of Texas describing use of simulation to
measure cache performance, warm up, etc.
Search phrases included:
web site performance cache warm up
web cache
web cache -proxy
web cache "warm up"
If you need further explanation of how cache warm up is done or the
operation of cache servers, please make a clarification request.
--Maniac |