开发者社区> 问答> 正文

[@小川游鱼][¥20]oom时,大神是通过什么手段来定位问题的

已解决

oom时,大神是通过什么手段来定位问题的

问题来自Java技术沙龙的许岩
Java线下沙龙报名链接:https://yq.aliyun.com/activity/796

展开
收起
管理贝贝 2018-11-30 18:13:22 2349 0
1 条回答
写回答
取消 提交回答
  • 阿里云问答专家、阿里云认证云计算工程师、Java研发工程师
    采纳回答

    Java服务OOM,最常见的原因为:
    (1)有可能是内存分配确实过小,而正常业务使用了大量内存;
    (2)某一个对象被频繁申请,却没有释放,内存不断泄漏,导致内存耗尽;
    (3)某一个资源被频繁申请,系统资源耗尽,例如:不断创建线程,不断发起网络连接。

    然后使用以下的命令或工具逐一排查:

    (一)确认是不是内存本身就分配过小

           方法:jmap -heap 10765
           可以查看新生代,老生代堆内存的分配大小以及使用情况,看是否本身分配过小。
    

    (二)找到最耗内存的对象

          方法:jmap -histo:live 10765 | more
          使用该命令后,会以表格的形式显示存活对象的信息,并按照所占内存大小排序,找到最耗内存的对象。
    

    (三)确认是否是资源耗尽

        工具:pstree   netstat
        查看进程创建的线程数,以及网络连接数,如果资源耗尽,也可能出现OOM。
    
    2019-07-17 23:17:51
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
美团crash监控分析系统优化之路 立即下载
美团 crash 监控分析系统优化之路:crash 率从千分位到万分位 立即下载
低代码开发师(初级)实战教程 立即下载