【问题标题】:Performance issues using AppFabric caching使用 AppFabric 缓存的性能问题
【发布时间】:2011-12-04 14:41:54
【问题描述】:

我发现当 AppFabric 缓存承受重负载时,它会导致不可预测的应用程序行为。

有没有人经历过类似的事情? 对 AppFabric 的理想配置有何想法?

【问题讨论】:

  • 您能描述一下您的配置以及这种不可预测的行为吗?
  • AppFabric 性能急剧下降,单缓存服务器上的高吞吐量、128MB RAM 限制、8 核、SQL 服务器、乐观缓存。 ASP.NET 应用程序正在使用 AppFabric 缓存服务。
  • 您缓存了多少数据?为什么 appFabric 服务只有 128 MB 的限制?
  • 缓存满时缓存中的项目不会被驱逐。缓存中的项目有时会立即被驱逐。
  • 只有 128MB 没有具体原因。假设项目将根据需要被驱逐。数百 MB 被推送到缓存中。

标签: .net caching appfabric


【解决方案1】:

您对 AppFabric 应用的限制似乎是导致性能问题的最终原因。也就是说,您可能还希望确保已将 channelOpenTimeout 和 requestTimeout 配置为一些合适的值 - 默认值非常高,在许多情况下,最好从数据存储中重新读取数据而不是等待AppFabric 做出响应。

  <dataCacheClient channelOpenTimeout="5" requestTimeout="1000">
    <!-- cache host(s) -->
    <hosts>
      <host name="localhost" cachePort="22233" />
    </hosts>
  </dataCacheClient>

【讨论】:

  • 如果我有 128 的限制并尝试缓存 150MB 的项目会怎样?
【解决方案2】:

可以缓存的对象的最大大小为 8 mb(默认情况下)。如果您的生产应用程序要缓存该大小的对象,您可以通过高级配置属性更改它。 关于另一个问题:如果我们尝试将 150 Mb 数据泵入 128 Mb 大小的缓存会发生什么。 1. 对象将使用尽力而为 LRU 被驱逐,更新的对象将替换它们。 2. 如果传入速率快于驱逐速率,缓存可能会受到限制,在一段时间内阻塞所有写入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多