我正在积极开发使用服务器端缓存的ASP.NET Web应用程序,我正在尝试了解如何在某些规模测试期间监视此缓存的大小。缓存存储各种大小的XML文档,其中一些是几兆字节。
在System.Web.Caching.Cache命名空间的System.Web.Caching对象上,我看到了各种属性,包括Count,其中包含“缓存中存储的项目数”和EffectivePrivateBytesLimit,获取“可用于缓存的字节数”。没有什么能告诉我缓存的字节大小。
在“.NET Framework应用程序缓存体系结构指南”指南的Understanding Caching Technologies部分中,有一个“管理缓存对象”部分,其中包含一个表(表2.2:用于监视缓存的应用程序性能计数器)列出一组应用程序性能计数器,但我没有看到任何给我当前大小的缓存。
找到此缓存大小的好方法是什么?我是否必须在缓存上设置字节限制并查看其中一个周转率?我是以错误的方式思考这个问题吗? How to determine total size of ASP.Net cache的答案真的是最好的方法吗?
答案 0 :(得分:1)
在我读到这个问题之前,我打算在你的问题中提到一个不太详细的answer帐号。我会把你推荐给我,好像是我的。没有比看到服务器上的物理尺寸更好的方法,其他任何可能都不准确。
您可能需要设置一些监控,Powershell脚本可以方便地记录并在报告中发送给您自己。通过这种方式,你可以在一夜之间进行各种测试并总结一下。
另一方面,它们听起来像放在内存缓存中的非常大的文档。您是否考虑过disk based cache这些较大的物品,并将记忆留给更适合它的较小物品。如果你的磁盘速度相当快,那么这应该是相当高效的。