• 广训
    2019-08-07
    刚入职现在的公司,发现线上某个实例会不定期不提供服务,进程还在,但是不再接受请求。每次都重启就恢复,后来一直观察。线上没写权限,也没什么监控工具,就是那种突然出问题,还要临时申请写权限去机器上执行jvm的相关命令。有时候也抱怨权限这东西,就跟站着茅坑不拉屎一样搞笑,有权限的人不做,要做的人做不了。有次用eclipse的工具看了下,dubbo对象特别多,都超过spring boot的了,看了dubbo的代码,发觉居然是每次都new出Reference来的,没有用注解,没有交给spring接管。交给容器后,后来也出现过服务不可用。一次偶然的机会,排查另一个问题时发现mybatis数据库异常,分析日志得知一个sql查询足足执行了30多分钟,看了sql语句,where条件触发了全表超大量数据扫描,然后服务就撑差不多半小时,异常之前服务是正常提供的,直到oom时僵尸。因为订单表订单号是拆单,父订单的父订单号自然为0,有一些老订单数据不符合规范,导致查询了订单号为0的sql。本地模拟果不其然,执行半个小时后就oom,服务不可用。oom是标准输出,日志并无该提示,导致一直未能看到。就加了一个if订单号不为0就解决了,你说这代码写的,找谁说理去。这个问题足足留意了差不多2个月,才找到是这么个原因,居然骂人都没脾气的问题。
    展开
     1
     7
  • 疯狂咸鱼
    2019-08-16
    老师的这门课太值了啊,可能很多人看到只是是tomcat所以没来买这门课,但是老师的课程里涉及到到了java的方方面面,真的是如获至宝。

    作者回复: 谢谢夸奖😄

    
     5
  • QQ怪
    2019-08-06
    之前在使用es的时候想用线程池来优化频繁获取连接造成的资源浪费,但因为自己粗心,使用的过程中错误的操作获取连接都去new线程池,而不是从线程池获取线程,导致内存老是到顶,那次内存泄露还是自己的基本功不扎实导致的,最后也是通过一些jvm工具找到了问题,当时画了不少时间在上面,挺感慨的
    
     3
  • neohope
    2019-08-06
    YGC 表示 Minor GC 的总时间,YGCT 表示 Minor GC 的次数。这两个是写反了吗?
     1
     1
  • gogo
    2019-08-06
    赞 自己手还是比较生 了解到的知识面比较窄 还是要多记 多理解 多联系 无奈平时的增删改查太多了
    
     1
  • 朱东旭
    2020-01-17
    您好,老师,开启HeapDumpOutOfMemoryError可以在出现内存溢出时自动生成堆快照,感觉这是个挺实用的参数。请问生产环境是否可以开启这个参数。
    
    
  • 东风
    2020-01-02
    ,不断地 new 新对象放到一个 List 中,来模拟 Web 应用中的内存泄漏。严格来讲,这里并不算是内存泄露吧,只是溢出而已,因为List是能够访问到这些对象的,所谓的内存泄露是没有变量能够访问但这个对象,但gc还无法回收这些对象。😁
    
    
  • Geek_8c4282
    2019-12-19
    老师,如果在线上jmap生成堆栈会影响线上服务器性能吧,服务器会卡顿吧
    
    
  • HuAng
    2019-12-17
    如果Heap Dump文件很大,用什么工具可以打开
    
    
  • 靠人品去赢
    2019-12-04
    这个精确到每个“每个 out of memory”,很顶哦。
    
    
  • 张德
    2019-10-24
    最常见的内存溢出的原因 比如递归的时候 没有出口
    
    
  • Geek_00d567
    2019-09-19
    大部分是jvm的原因啊,好想没tomcat啥事啊。老师的课程,实战性很强。
    
    
我们在线,来聊聊吧