【问题标题】:Appfabric cache (Velocity): Expiration in non-expirable cache and unreadable trace log?Appfabric 缓存(速度):在不可过期的缓存和不可读的跟踪日志中过期?
【发布时间】:2010-09-30 07:35:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: caching appfabric


    【解决方案1】:

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

    检查eventvwr -> Applicin and Service -> Microsoft -> Windows - Application Server System Services 并选择 Operational。

    寻找类似的警告:

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

    【讨论】:

      【解决方案2】:

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

      但是我什至不能使用tracelog工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-21
        • 1970-01-01
        • 2019-05-09
        相关资源
        最近更新 更多