首页 > 其他分享 >问题排查

问题排查

时间:2023-04-04 10:33:08浏览次数:42  
标签:hprof 虚拟机 问题 排查 内存 泄露 溢出

一、OOM问题

om意味着程序申请内存过大,虚拟机无法满足,为什么会没有内存了呢?原因不外乎有两点:

1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时的VM参数指定)太少。

2)应用用的太多,并且用完没释放,浪费了。此时就会造成内存泄露或者内存溢出。内存泄露:申请使用完的内存没有释放,导致虚拟机不能再次使用该内存,此时这段内存就泄露了,因为申请者不用了,而又不能被虚拟机分配给别人用。内存溢出:申请的内存超出了JVM能提供的内存大小,此时称之为溢出。

排查手段?

一般手段是:通过-XX:+HeapDumpOnOutOfMemoryError和-XX:HeapDumpPath在oom时把当前堆内存的快照转储到hprof文件中,也可以使用jmap实时生成hprof文件,用MAT打开hprof文件来进行辅助分析堆现场的情况,重点查看哪些类、对象占了大量的内存,以及PathToGCRoots来看引用链以确定大对象未被回收掉的原因。

确定是否内存泄露或溢出导致的:首先使用MAT打开刚刚导出的hprof文件,选择报告里的泄露嫌疑分析 Leak Suspects Report。可看到该对象所在线程的堆栈信息,可以定位到发生OOM的代码段。就可以比较准确地定位内存泄漏和内存溢出的位置

如果不存在泄漏:那么就是内存中的对象确实必须存活着,那么此时就需要通过虚拟机的堆参数( -Xmx和-Xms)来适当调大参数;从代码上检查是否存在某些对象存活时间过长、持有时间过长的情况,尝试减少运行时内存的消耗

 

可能导致OOM的原因
1、vim打开大文件
2、程序有死循环一直创建对象
3、堆大小设置不合适
4、扫表时候一次性查出太多的数据
5、扫表时候条件设置不当,永远扫出同样的数据,没有限制页数

 

二、CPU使用率飙升排查

1、用top命令查询资源占用情况,可看到内存和cpu的使用情况

 

标签:hprof,虚拟机,问题,排查,内存,泄露,溢出
From: https://www.cnblogs.com/MarkLeeBYR/p/17285575.html

相关文章

  • SEO常见问题解答:如何解决网站优化中遇到的难题和挑战
    SEO常见问题解答:如何解决网站优化中遇到的难题和挑战网站优化是提高网站在搜索引擎中排名和流量的重要手段,但是在优化过程中,往往会遇到各种难题和挑战,如何有效地解决这些问题,是每个网站运营者和SEO专家都需要掌握的技能。本文将针对一些常见的网站优化问题,给出一些解决方案和建议......
  • 爬虫遇到了点问题
    正常在写一些爬虫代码的时候多少都会出点小问题,一位合格的程序员应该会认真排除并加以解决错误,如果是新手看着满屏的代码可能会一筹莫展。golang爬某网站代码优化后,运行报了如下的错,找了半小时才找到原因,在此记录一下。代码是这样的:有一个interface类型的Parser:typeParse......
  • [性能测试实战30讲」之问题问答整理十七
    思考题:Tomcat的应用服务器,应该如何拆解监控计数器呢?我们应该如何判断应用服务器的线程是否够用?读者:1.如何判断代码快不快,我的理解是,压力工具中的线程数设置低于中间件的线程数,看看测试过程中服务器返回响应是否足够快2.如何判断应用服务器线程是否够用?测试过程中应用监控工具如jvi......
  • 记一次springboot通过jackson渲染到前端,出现大写字母变成小写问题
    前言最近业务部门接手了外包供应商的项目过来自己运维,该部门的小伙伴发现了一个问题,比如后端的DTO有个属性名为nPrice的字段,通过json渲染到前端后,变成nprice,而预期的字段是要为nPrice。于是他们就找到我们部门,希望我们能帮忙解决一下这个问题,本文就聊聊如何解决问题,至于为什么会......
  • undefined symbol问题的查找、定位与解决方法
    今天被客户测出来一个问题:程序执行中报错,报错内容如下XXXX:symbollookuperror:/home/....../libpdfium.so:undefinedsymbol:CRYPT_MD5Generate报错分析:    这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三方动态库libpdfium.so中,于是从libpdfium.so中......
  • 爬虫中的代理问题
    最近身边很多人都遇到爬虫中的爬虫ip问题,写下这篇博客来记录自己所学,希望可以帮助到你们。可能很多人都会问为什么我需要用爬虫ip呢?不用不可以吗?用了爬虫ip之后发现爬虫抓取数据的速度反而下降了不少于是放弃爬虫爬虫ip的使用。如果我们只是进行少量数据的爬取,用本机的IP与User-......
  • 【AGC】引入AGC插件SDK后应用出现中文名乱码问题
    【关键字】AGC、android、插件 【问题描述】开发者反馈应用集成了AGCAppLinking服务,在引入AGC插件时遇到了一些问题。引入AGC插件后应用的中文名出现乱码的问题,具体如下所述:在应用级的build.gradle中引入com.huawei.agconnect后应用中文名乱码1.在android/app/build.gradl......
  • magento 问题解答 FQA
    1.IsthereawaybymysqltosetALLproductvisibilitytocatalog,search? 批量修改产品可见 openuptheeav_attributetableandfindtherowwhereattribute_code=visibility.Takenoteoftheattribute_id,mostlikelyitwillbe85.Alsotakenotetha......
  • android 解决ScrollView嵌套ListView的问题,不能全屏,全屏不能显示下面控件
    在开发中遇到ScrollView嵌套ListView的问题,最开始发出不能全屏,效果是这样的;但我想要的效果是这样的:下面看一下布局文件:<?xmlversion="1.0"encoding="utf-8"?><ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_p......
  • P2756 飞行员配对方案问题
    一共有n个飞行员,其中有m个外籍飞行员和(n−m)个英国飞行员,外籍飞行员从1到m编号,英国飞行员从m+1到n编号。对于给定的外籍飞行员与英国飞行员的配合情况,设计一个算法找出最佳飞行员配对方案,使皇家空军一次能派出最多的飞机。 二分图板子题用网络流输出时,判断w[......