为什么在群集时EhCache会使Gets变慢?

时间:2018-07-19 15:15:55

标签: java caching ehcache terracotta ehcache-3

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

当我将群集添加为资源(保持堆资源不变)时,我希望PUT时间会更慢。但是GET时间是否应该保持不变?当我将集群添加为资源时(如我所说,我保持堆资源不变),GET时间(由JMX MBeans衡量)增加了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>

vs。

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

在2000个GET中平均产生1600us和16us。

1 个答案:

答案 0 :(得分:0)

您的配置似乎正常。第一次进入条目的速度会变慢,因为您在堆层上遇到了高速缓存未命中的情况。

但是,下面所有这些都应该和往常一样快。

能告诉我吗?