【问题标题】:How much memory does each cache occupy by default in Oracle Coherence?Oracle Coherence 中每个缓存默认占用多少内存?
【发布时间】:2015-07-30 11:21:37
【问题描述】:

我们在 coherence-cache-config.xml 中配置了多个缓存。例如,

<cache-mapping>
<cache-name>Cache1</cache-name>
<scheme-name>Cache-Scheme1</scheme-name>
</cache-mapping>

<cache-mapping>
<cache-name>Cache2</cache-name>
<scheme-name>Cache-Scheme2</scheme-name>
</cache-mapping>

<cache-mapping>
<cache-name>Cache3</cache-name>
<scheme-name>Cache-Scheme3</scheme-name>
</cache-mapping>          

我们每个节点有 1 GB,集群中有 4 个节点。每个缓存都使用自己的服务。

<distributed-scheme>
<scheme-name>cache-scheme_1</scheme-name>
<service-name>BaseCacheService1</service-name>
<thread-count system-property="tangosol.coherence.base.threads">2</thread-count>
<guardian-timeout>30m</guardian-timeout>
<backing-map-scheme>
<local-scheme>
<scheme-ref>cache-local</scheme-ref>
</local-scheme>
</backing-map-scheme>
<autostart>true</autostart>
</distributed-scheme>

问题:
1. 1GB总内存中,每个缓存/服务默认占用多少内存?我知道 1/3 的内存可能会被核心进程的一致性使用。所以剩余的 600MB 需要分布在缓存中。

  1. 如果没有对象放入缓存,Coherence 缓存是否默认使用任何内存?

  2. 我们在其中一个缓存中看到内存不足错误。当缓存达到最大内存时,根据驱逐策略数据将被驱逐。我认为当驱逐正确发生时不应该发生内存不足。请告诉我为什么会发生内存不足错误。

问候 哈里

【问题讨论】:

    标签: caching oracle-coherence


    【解决方案1】:

    在您分配给 Coherence Node 的总堆大小中,1/3rd 用于与一致性相关的东西,如索引等(您提到的核心服务),1/3rd 将保存实际数据,1/3rd将转到节点持有的备份数据(假设您只进行了一次复制)。因此,您可以有效地仅使用 340 MB 的堆大小来存储数据,而不是 600 MB。

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多