我们正在运行带有 IIS 7.5 的 Win 2008 R2 服务器来提供图像文件。
它仅用于静态内容,文件缓存已设置为缓存文件 10 分钟。
但是 IIS 经常完全刷新缓存(通过使用 Perfmon 可以看到)
这不是应用程序池回收,也不是因为 TTL 已过期,所以现在我不知所措:-(
我已经包含了性能图的屏幕截图,您可以在其中清楚地看到问题。
有没有我可以看到为什么它会进行这些冲洗的地方?
(注意:我知道我可以通过将调试器附加到进程来检测它,但这不是一个选项,因为它是一个生产服务器,并且它无法处理调试器会导致的减速)
终于找到了问题的答案。
我们在网站的 web.config 中有这个(尽管没有在网站上运行任何托管代码)
<caching enableKernelCache="true">
Run Code Online (Sandbox Code Playgroud)
将此更改为false 后,IIS 停止执行这些完全刷新。它仍然会定期刷新一些文件,但不再是完全刷新(大约 50k 文件保留在缓存中)
我们的文件缓存命中率从 5% 增加到 33%,所以这肯定有很大帮助。
不知道为什么内核缓存会导致这种行为,但我可以忍受用户模式下缓存的轻微开销。
以为我会添加这个作为答案来帮助其他有类似问题的人。
归档时间: |
|
查看次数: |
4240 次 |
最近记录: |