12

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

4

1 回答 1

22

内核模式缓存本质上是在操作系统级别处理缓存请求,因此可以访问存储在其中的内容,而无需通过其他常用管道(即,它不必进入 ASP.NET或 IIS 级缓存来检查内容):

在此处输入图像描述

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

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

另一方面,用户模式将填补无法使用内核模式的空白,它主要围绕授权/身份验证的内容(因为它需要检查用户是否可以实际访问内容),但是有许多其他可能导致http.sys缓存不被使用的场景。

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

netsh http show cachestate
于 2016-04-04T15:51:01.057 回答