工作流Context缓存过大导致内存溢出

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

工作流Context缓存过大导致内存溢出

所属模块系统性能
适用版本Eas540
问题描述EAS540的系统,系统使用高峰时,多次出现服务器宕机

原因分析1、通过收集的heapdump文件分析,和工作流相关的缓存(JCache)占了7百多兆空间

展开上述HashMap集合中任一对象

继续展开objectrefimpl对象

orgrangeInfo有1百多万个,共占用4百多兆

2、总结因为工作流这边会把用户的context缓存起来,但是有些业务会修改context,往context里面放很多东西(如权限,组织的信息),导致context对象很大,所以就有可能出现这样的问题。
由于540的JCache中没有关于容量的控制,只有通过缓存时间来控制,目前context的缓存时间为12个小时。


解决方法修改了对context的缓存逻辑1. 控制context缓存的大小(控制在1000个以内)2. 修改缓存时效,把原来的12小时修改成1小时


关键字工作流,缓存,内存溢出

工作流Context缓存过大导致内存溢出

所属模块系统性能适用版本Eas540问题描述EAS540的系统,系统使用高峰时,多次出现服务器宕机原因分析1、通过收集的heapdump文件分析,和工...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息