Improving Scalability by Optimizing IIS 6.0 Caches

Applies To: Windows Server 2003, Windows Server 2003 with SP1

A cache is a special subsystem that stores frequently requested data. Without caches or caching, IIS can potentially impose three time-consuming processes on each request, which can cause poor response times. These processes include:

  • Reading metadata for each request, which generates a time-consuming remote procedure call (RPC) to the IIS Admin service.

  • Retrieving the authentication token for the IUSR_computername account with a time-consuming RPC to Lsass.exe.

  • Opening and reading the file.

To mitigate these time-consuming processes, HTTP.sys and IIS use caches. These caches are all enabled by default and should not require much tuning by administrators. If, while monitoring Web Service Cache counters in System Monitor, you begin to see rising numbers of cache misses or very low cache hit rates, you can adjust settings for the following:

  • URI cache (user-mode URI cache)

  • Token cache

  • File cache

  • HTTP.sys response cache (kernel URI cache)

  • ASP caches, including the ASP template cache and the ASP script engine cache

  • Global cache registry entries

For information about Universal Naming Convention (UNC) caching, see, Caching UNC-Based Files. For information about IIS cache counters, see the Performance Counters Reference.