1

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

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

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

4

2 回答 2

2

当您的缓存几乎立即到期时,我发现了问题所在。如果您的内存不足,则缓存将被清除。

检查 eventvwr -> 应用程序和服务 -> Microsoft -> Windows - 应用程序服务器系统服务并选择操作。

寻找如下警告:

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

于 2011-08-17T06:55:07.170 回答
0

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

但我什至不能使用跟踪日志工具。

于 2011-03-08T10:09:20.560 回答