【026】2020.11.26 周四 JVM调优案例-02
2020-12-12 本文已影响0人
算法成瘾者
JVM调优案例 11.26
集群间同步导致的内存溢出
问题
一个B/S的MISS系统开启JBossCache全局缓存后,不定期出现内存溢出的问题
原因
JBossCache在确认所有注册在GMS的节点都收到正确信息前,发送的信息必须在内存中保留
MISS服务端的全局过滤器更新最后更新时间导致集群各节点交互频繁,当网络情况不能满足传输需求时,重发的数据在内存中不断堆积很快产生了内存溢出
解决
JBossCache后续有改进可允许读操作,不应当有过于频繁的写操作避免网络同步的开销
堆外内存导致的溢出错误
问题
基于B/S的电子考试系统服务端不定时抛出内存溢出异常
原因
一共2GB内存,1.6GB分给了堆内存,分给直接内存的少,可 ComeD 1.1.1 框架有大量NIO操作,使用到了直接内存,所以OOM了
解决
也要给直接内存分配合适的内存
直接内存
线程堆栈
Socket缓存区
JNI代码
虚拟机和垃圾收集器