IIS 8.0内核模式和用户模式缓存的区别

difference between kernel mode and user mode caching in IIS 8.0

内核模式缓存和用户模式缓存有什么区别以及如何跟踪两者?

内核模式缓存本质上是在 OS 级别处理缓存请求,因此可以访问存储在其中的内容,而无需进入常规管道的其余部分(即它不会必须进入 ASP.NET 或 IIS 级缓存以检查内容):

因此请求会命中初始缓存 (http.sys),找到它需要的内容并将其发回,所有这些都无需继续沿着管道进行。

因此,它通常很快。但它的一个局限性是它不支持许多用户级功能,例如身份验证和授权,因此它可能不适合所有场景。

另一方面,用户模式将填补无法使用内核模式的空白,它主要围绕 authorized/authenticated 内容(因为它需要检查用户是否可以实际访问内容),但有 many other scenarios 可能导致 http.sys 缓存无法使用。

关于实际检查内容是否被缓存(可能还有原因),您可以使用 FREB(失败请求事件缓冲)。下面的命令可以用来找出在内核态缓存了哪些内容:

netsh http show cachestate