Appfabric缓存(Velocity):非可预期缓存中的到期时间和不可读的跟踪日志?

时间:2010-09-30 07:35:23

标签: caching appfabric

我们在项目中使用Appfabric缓存,遇到了两个主要问题。

首先 - 我们使用命名缓存(没有明确创建的区域)。其中一个创建为Expirable = false,Eviction = none,TTL = 525600用于应始终可用的对象(在应用程序启动时通过Put方法填充)。但有时(我无法确定确切的时间跨度,也没有连接到应用程序中的某些操作)此缓存中的所有对象突然过期 - 我可以从性能计数器看到这一点 - 此缓存的对象计数变为0,总过期对象计数器增加同时在此缓存中的对象数量。我错过了其他一些设置吗?我尝试通过Put()插入它们没有时间跨度,并使用时间跨度“一年”。几分钟后仍然过期......

第二个问题 - 当我试图解决第一个问题时,我决定使用ETW跟踪日志记录功能来查看日志,发生了什么。我已经通过logman创建了tracelog并启动它,等待缓存过期,停止日志,并使用tracerpt从etl创建dumpfile。到目前为止一切都还好。但是这个转储文件没用,因为没有可读的数据,只有4400690073007400720 .......经过一些快速的研究,我想通了,我需要提供一个PDB或TMF文件来追踪,所以它可以“解码” binaryeventdata到可读事件数据。是否有可能获得appfabric缓存中的一些?或者还有一些其他方法可以使用ETW和appfabric来获取一些有用的可读日志吗?

2 个答案:

答案 0 :(得分:2)

我发现当你的缓存几乎立即到期时会出现什么问题。 如果你的内存很低,缓存就会被清除。

签入eventvwr - >申请和服务 - >微软 - > Windows - Application Server System Services并选择Operational。

寻找警告:

服务可用内存低 - 缓存专用字节百分比{2}缓存工作集百分比{1}缓存数据大小百分比{0}可用内存百分比{21} CLR Generation2 count {2013}释放内存百分比{0}。

答案 1 :(得分:0)

这里有一个解释,将日志文件转换为cvs:http://msdn.microsoft.com/en-us/library/ff921010.aspx

但我甚至无法使用tracelog工具。