为什么 IIS 7.5 经常刷新文件缓存?

Ste*_*fen 2 cache iis-7.5

我们正在运行带有 IIS 7.5 的 Win 2008 R2 服务器来提供图像文件。

它仅用于静态内容,文件缓存已设置为缓存文件 10 分钟。

但是 IIS 经常完全刷新缓存(通过使用 Perfmon 可以看到)

这不是应用程序池回收,也不是因为 TTL 已过期,所以现在我不知所措:-(

我已经包含了性能图的屏幕截图,您可以在其中清楚地看到问题。

有没有我可以看到为什么它会进行这些冲洗的地方?

(注意:我知道我可以通过将调试器附加到进程来检测它,但这不是一个选项,因为它是一个生产服务器,并且它无法处理调试器会导致的减速)

性能截图

Ste*_*fen 5

终于找到了问题的答案。

我们在网站的 web.config 中有这个(尽管没有在网站上运行任何托管代码)

<caching enableKernelCache="true">
Run Code Online (Sandbox Code Playgroud)

将此更改为false 后,IIS 停止执行这些完全刷新。它仍然会定期刷新一些文件,但不再是完全刷新(大约 50k 文件保留在缓存中)

我们的文件缓存命中率从 5% 增加到 33%,所以这肯定有很大帮助。

不知道为什么内核缓存会导致这种行为,但我可以忍受用户模式下缓存的轻微开销。

以为我会添加这个作为答案来帮助其他有类似问题的人。