3

我正在积极开发使用服务器端缓存的 ASP.NET Web 应用程序,我试图了解如何在一些规模测试期间监控此缓存的大小。缓存存储各种大小的 XML 文档,其中一些是数兆字节。

System.Web.Caching命名空间的System.Web.Caching.Cache对象上,我看到了各种属性,包括Count,它获取“存储在缓存中的项目数”和EffectivePrivateBytesLimit,它获取“可用于缓存。” 没有什么能告诉我缓存的大小(以字节为单位)。

在“.NET Framework 应用程序的缓存体系结构指南”指南的“了解缓存技术”部分中,有一个“管理缓存对象”部分,其中包含一个表(表 2.2:用于监视缓存的应用程序性能计数器),其中列出了一组应用程序性能计数器,但我没有看到任何给我当前缓存大小的信息。

找到此缓存大小的好方法是什么?我是否必须在缓存上设置字节限制并查看其中一个周转率?我是否以错误的方式思考这个问题?如何确定 ASP.Net 缓存的总大小的答案真的是最好的方法吗?

4

1 回答 1

1

在我阅读之前,我正打算对您在问题中提到的答案进行不太详细的说明。我会向你推荐这个,对我来说似乎很合适。没有比查看服务器上的物理大小更好的方法了,其他任何事情都可能不准确。

您可能想要设置一些监控,Powershell 脚本可能会方便地记录并在报告中发送给您自己。这样你就可以在一夜之间运行各种测试并总结它。

在旁注中,它们听起来像是要放入内存缓存的非常大的文档。您是否考虑过为这些较大的项目使用基于磁盘的缓存,并将内存留给更理想的较小项目。如果您的磁盘相当快,这应该是相当高性能的。

于 2009-09-12T14:47:03.590 回答