zoukankan      html  css  js  c++  java
  • 问题:虚拟机老生代垃圾回收频繁出现

    case:

    runbroker.sh JAVA_OPT 使用的是默认参数,broker运行过程中新生代垃圾回收次数较少,频繁出现老生代垃圾回收 cms gc ,并且老生代内存回收不掉。造成卡顿、消息发送失败。最终导致java heap 被占用完,broker 宕机。求教!

    内存分析:

    broker瘫痪之后使用jmap生成dump文件,使用MAT进行分析,发现HAService实例Retained 大量内存。

    服务器模式是3m ,没有使用slave,但是从机刷盘的服务却占用大量内存,且不能被回收。问题显而易见。

    解决方式一:启动slave

    解决方式二:重构代码rocketmq_store.jar ,去除slave相关。

     经过进一步调查 HAService ,发现对应的日志文件store.log 中存在大量

    HAService receive new connection, /172.16.50.105:xxxxx

    并且启动大量的

    WriteSocketService service started

    并且没有被关闭,应该对应有WriteSocketService service end ,但是日志中只有很少一部分。

    与Problem Suspect 1 一致!

    解决方案:已查清 172.16.50.105 为监控机,频繁连接导致上述问题。停止监控broker服务器。

  • 相关阅读:
    uu 模块
    程序员都是好男人
    TCP基础知识
    最全 git 命令总结
    iOS 添加UIWindow不显示问题解决
    解决CFBundleIdentifier", Does Not Exist
    Mac 系统OS X>=10.9,怎么把默认的python切换成3.7或者更高
    OC算法练习-Hash算法
    设计模式架构模式
    runtime相关知识
  • 原文地址:https://www.cnblogs.com/zno2/p/4607620.html
Copyright © 2011-2022 走看看