【发布时间】: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 需要分布在缓存中。
如果没有对象放入缓存,Coherence 缓存是否默认使用任何内存?
我们在其中一个缓存中看到内存不足错误。当缓存达到最大内存时,根据驱逐策略数据将被驱逐。我认为当驱逐正确发生时不应该发生内存不足。请告诉我为什么会发生内存不足错误。
问候 哈里
【问题讨论】: