server sdk反复初始化时内存泄漏问题

卡拉米 2天前 92

我看代码提交有更新,有修改这个问题 那im-server和调用了这个sdk的项目是否都需要更新 我们的im-server是这个版本的 需要您那边重新给发im-server的包 重新部署么 现在的包是有内存泄露的问题么

最新回复 (7)
  • matcher 2天前
    引用 2
    你的包 是6月份下的?
  • HeavyRain 2天前
    引用 3
    专业版IM服务用的SDK和社区版是同一个的,你下载最新的社区版IM服务软件包里的SDK就行
  • HeavyRain 2天前
    引用 4
    反复初始化内存泄漏是SDK的问题,不用更新IM服务
  • 卡拉米 2天前
    引用 5
    好的 感谢 就是引用了sdk的服务可能会内存泄露  我看app-server的依赖版本是1.35 这个版本的sdk解决了存在内存泄露的问题么  需要替换么
  • HeavyRain 2天前
    引用 6
    这个内存泄漏的原因是这样的:当初始化SDK后,会创建一个httpclient,这个httpclient里面有连接处等一些列东西,当这个httpclient不用时,需要close掉。出问题的场景是有一个客户,他的业务服务每次要发送消息时,都出初始化一次sdk,导致内存泄漏,现在改成单例了,就解决了多次初始化带来的问题。如果业务系统只初始化一次,那就没有问题,只有初始化非常多次(其实不应该初始化很多次)才有这个问题。

    这个问题在社区版1.39解决的。如果你们没有反复初始化的场景,可以不用管。如果可能反复初始化,需要更新SDK到1.39及以后
  • 卡拉米 1天前
    引用 7

    我们有一个服务有这个问题然后我就把我相关的项目都更新了,然后我发现im-server的内存增长的非常迅速,之前是每天晚上到八个g 现在下午就能到 这种情况是正常的么 我感觉不太对吧 是不是有内存泄露啊 而且是线性增长的都,我们的是4核32G的服务器 每天发送的消息数大概是两万左右,每天0点脚本重启服务 jvm参数我设置的是12G root 27475 27420 1 00:00 ? 00:08:22 /bin/java -server -XX:+UseG1GC -XX:MaxGCPauseMillis=500 -XX:-OmitStackTraceInFastThrow -Xmx12G -Xms12G -XX:MaxMetaspaceSize=512m -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/im/prod/im-server/logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M -XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true -Dlog4j.configurationFile=file:/im/prod/im-server/config/log4j2.xml -Dlog4j2.formatMsgNoLookups=true -Dcom.mchange.v2.c3p0.cfg.xml=/im/prod/im-server/config/c3p0-config.xml -Dhazelcast.configuration=/im/prod/im-server/config/hazelcast.xml -Dredisson.configuration=/im/prod/im-server/config/redisson-config.yaml -Dwildfirechat.path=/im/prod/im-server -cp /im/prod/im-server/lib/* cn.wildfirechat.server.Server 我看堆外内存好像一直增长,辛苦您那边排查一下呗 我看错误日志里时长有Netty 是不是第三方类库有泄露啊![](http://bbs.wildfirechat.cn/upload/images/202510/09_44_48_31811)![](http://bbs.wildfirechat.cn/upload/images/202510/09_44_37_64162)

    上传的附件:
  • HeavyRain 1天前
    引用 8
    不用每天重启,java是内存回收的,所以增长到一定程度会稳定住,不用担心
返回