修改Coherence配置后内存占用过高问题咨询
Coherence缓存模式切换后服务器过载问题咨询
问题概述
我们将Coherence缓存从replicated模式改为near-distributed-persistent模式后,服务器出现过载情况:
- 每个节点配备约50GB物理内存,JVM堆内存设置为
-Xmx=32g、-Xms=32g,已按照Oracle文档要求为active-persistent模式额外分配20-35%内存,但系统内存使用率仍超过90% - 应用每日夜间执行全量缓存刷新,在高吞吐量(缓存读取频繁)场景下,过载现象更为明显
- 通过Enterprise Manager查看Coherence MBeans时发现,同一缓存名称对应多个实例,例如存在3个NearCache类型和3个LocalCache类型实例
- 分析堆转储文件后发现,堆内存仅使用9GB(远未达到32GB上限),其中最大对象来自Coherence组件
- 注意:当前缓存配置文件在同一个可部署EAR包下的两个JAR中重复存在
当前缓存配置
<?xml version='1.0'?> <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config"> <caching-scheme-mapping> <cache-mapping> <cache-name>app-*</cache-name> <scheme-name>app-refdata-near</scheme-name> </cache-mapping> <cache-mapping> <cache-name>configConsultationCache</cache-name> <scheme-name>config</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <near-scheme> <scheme-name>app-refdata-near</scheme-name> <front-scheme> <local-scheme> <scheme-ref>app-refdata-local</scheme-ref> </local-scheme> </front-scheme> <back-scheme> <distributed-scheme> <scheme-ref>partitioned</scheme-ref> </distributed-scheme> </back-scheme> </near-scheme> <local-scheme> <scheme-name>app-refdata-local</scheme-name> </local-scheme> <distributed-scheme> <scheme-name>partitioned</scheme-name> <backup-count>2</backup-count> <backing-map-scheme> <local-scheme/> </backing-map-scheme> <persistence> <environment>default-active</environment> </persistence> <autostart>true</autostart> </distributed-scheme> <local-scheme> <scheme-name>config</scheme-name> <expiry-delay>1h</expiry-delay> </local-scheme> </caching-schemes> </cache-config>
咨询问题
- 上述Coherence配置是否存在问题?
- 全量缓存刷新操作是否与新的near-distributed-persistent配置存在冲突?
内容的提问来源于stack exchange,提问作者anat0lius
相关产品推荐
相关产品推荐

