Thursday, July 29, 2021

Kernel-mode and user-mode caching

After enabling output caching (refers to both kernel-mode and user-mode) in IIS, you may want to make sure resources are cached as expected. Here is what you can do to confirm the caching status:

Kernel-mode cache

  • Run the command netsh http show cachestate. If it returns “There were no cache entries corresponding to the provided URL”, there is no data in the kernel-mode cache
  • Check “Kernel: Current URIs Cached” performance counter. If it shows 0, the kernel-mode cache is empty
  • Collect Failed Request Tracing (FREB) logs. It shows if kernel-mode caching was used (HTTPSYS_CACHEABLE event)


Note: Even if the kernel-mode cache is enabled, resources may not be cached. There are certain scenarios in which the kernel-mode caching cannot be used (Reference)

User-mode cache

  • There is no equivalent of netsh http show cachestate command for the user-mode cache
  • However, you can use the performance counter “Current URIs Cached”. It shows how many URIs are cached in the user-mode
  • Note: Recycling application pool or resetting IIS clears the user-mode cache




A few useful pages to learn more about caching:



Posted at