【问题标题】:Why is EhCache slowing down Gets when clustering?为什么 EhCache 在集群时会减慢 Gets 的速度?
【发布时间】:2018-12-27 19:20:56
【问题描述】:

我在我的 Java Web 应用程序中成功使用了 EhCache。我现在正在尝试使用 Terracotta 服务器,因为我想在多个服务器实例上分发应用程序,但我很困惑。

当我将集群添加为资源时(保持堆资源不变),我预计 PUT 时间会更慢。但是 GET 时间不应该或多或少保持不变吗?当我将集群添加为资源时(如我所说,我将堆资源保持原样),GET 时间(由 JMX MBean 测量)增加了 10-100 倍。

我从文档中的理解是,在 PUT 时,需要通知权威层(在本例中为集群),因此它可以驱逐所有上层。但是在重复 GET 时,只应考虑堆层(当足够大时 - 这里就是这种情况,这只是一个实验)。

我是不是这里出了什么问题,或者我的假设是正确的,而我在某处有错误?

<cache alias="publisherCache" uses-template="eternal-10000">
    <resources>
        <heap>200</heap>
        <terracotta:clustered-dedicated unit="MB">15</terracotta:clustered-dedicated>
    </resources>
</cache>

对比

<cache alias="publisherCache" uses-template="eternal-10000">
    <resources>
        <heap>200</heap>
    </resources>
</cache>

平均产生 1600us 与 16us 超过 2000 次 GET。

【问题讨论】:

  • 分析这个问题有什么进展吗?在堆层旁边添加集群缓存层时,我也面临几毫秒的增加,但无法理解它的原因。

标签: java caching ehcache terracotta ehcache-3


【解决方案1】:

您的配置看起来不错。第一次获取条目会更慢,因为堆层上有缓存未命中。

但是,以下所有的都应该像往常一样快。

你能告诉我是不是这样吗?

【讨论】:

  • 谢谢。这就是重点,似乎并非如此。我在初始加载后清除了统计信息,但 GET 仍然很慢。
  • 有趣。等我有 5 分钟的时间,我会试一试。
猜你喜欢
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 1970-01-01
  • 2016-12-04
  • 2018-03-11
  • 2012-01-02
相关资源
最近更新 更多