专栏首页InvQ的专栏java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space

溢出

这个服务本来是rpc提供方,但是消费端经常用着用着就说没有provider,期初没注意同事说重启下就好了,确实管用,但后来能用时间越来越少,重启后只能管几分钟,于是我不偷懒了,看下这个服务有什么问题,好家伙~一看原来是内存溢出,导致了rpc的socket链接都已经关闭了。报错如下:

2020-12-28 14:32:50.597 ERROR 36197 --- [pool-7-thread-1] o.a.h.i.n.c.InternalHttpAsyncClient      66  : I/O reactor terminated abnormally org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:359)
        at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:194)
        at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: Java heap space



ver 10.12.25.107/10.12.25.107:2181, unexpected error, closing socket connection and attempting reconnect java.lang.OutOfMemoryError: Java heap space
        at java.util.HashMap$KeySet.iterator(HashMap.java:912)
        at java.util.HashSet.iterator(HashSet.java:172)
        at sun.nio.ch.Util$2.iterator(Util.java:243)
        at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:358)
        at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1141)

查看堆占用情况

jmap -heap pid

查看垃圾回收情况

jstat -gcutil pid 300 //每隔300毫秒打印一次

发现老年代使用如此之高,而且垃圾回收时间也很有问题,所以就是堆内存不够用了。 而随便一个正常的服务不会这么搞,一般也就是占用不到一半。向下面这样

从配置看,现在xmx 就给了4g,是明显不够用的,先扩展到6g看下情况。

修改后

继续查看:

明显降低了,至此问题解决。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java8 dubbo 调用 Collectors.toMap代码片发生的异常(IllegalStateException: Duplicate key)

    然后,这段代码是被dubbo中的线程执行的,所以,当时只抛了一句话,并没有堆栈信息,后面的日志都没有打印。以至于线程无缘无故后面的都不执行了,线程直接挂掉。

    MickyInvQ
  • The consumer group[PushConsumer] has been created before, specify another name please

    MickyInvQ
  • dubbo 调用报Null 空指针 ,可能并不是真正的空指针

    在消费consumer调用rpc的时候,传参明明不为空(已经打日志校验),但是,在rpc提供者的第57行代码,第一行,就报空指针。

    MickyInvQ
  • 记一次 org.apache.kudu.client.NonRecoverableException 的排查

    在实时数仓的时候,遇到了 org.apache.kudu.client.NonRecoverableException,搞了好长时间,特此记录一下。

    shengjk1
  • No buffer space available (maximum connections reached?): connect

    产生场景: java调用es,由于代码不当,导致每次调用都会新建链接,当循环调用2万次时,报错了,发生了如下错误:

    IT云清
  • mybatis连接oracle

    原因:oracle jdbc并不能向mysql那样直接配置,原因是Oracle授权问题,Maven不提供oracle JDBC driver,需要手动配置下,这...

    微醺
  • 容器打印日志到控制台阻塞的排障

    今日生产环境发现有些容器停止响应了,但是容器没有死,docker exec -it <container-name> /bin/bash也能正常使用。

    颇忒脱
  • BindingException: Parameter 'XXX' not found. Available parameters are [collection, list]

    应业务需求,需要使用到MQ进行数据上传和下发。传递格式为JSON,服务那边下发JSON数组,接收端将JSON数组转换成List集合,调用Mybatis-plus...

    Jacob丶
  • java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z

    原因是我的 log4j 是最低版本的 1.2.4,解决办法就是升级到 1.2.12+ 的版本。

    wsuo
  • RTOS内功修炼记(四)— 小小的时钟节拍,撑起了内核半边天!

    第一篇文章讲述了任务的三大元素:任务控制块、任务栈、任务入口函数,并讲述了编写RTOS任务入口函数时三个重要的注意点。

    Mculover666

扫码关注云+社区

领取腾讯云代金券