性能案例分析之内存泄漏 您所在的位置:网站首页 最大物理内存 性能案例分析之内存泄漏

性能案例分析之内存泄漏

2023-03-08 02:34| 来源: 网络整理| 查看: 265

一、查看Jvm运行状态的命令

监控jvm的GC情况:  jstat -gcutil pid 1000 100  查看jvm配置信息:    jmap -heap pid:可以看到java进程的堆的配置信息,各区的空间大小和配置信息  查看jvm中类和对象的占用情况:    jmap -histo 5279 | head -20:查看jvm中各个类的实例数、占用内存数量以及类的全名  堆文件dump:    jmap -dump:format=b,file=m.hdump 17777:对堆内存进行dump,以文件的形式进行保存下来,可以用jvisualvm等工具对文件进行分析

二、内存泄露有什么现象?  1,tps出现大幅波动,并慢慢降低,甚至降为0,响应时间随之波动,慢慢升高  2,通过jstat命令看到,Jvm中Old区不断增加,FullGC非常频繁,对应的FullGC消耗的时间也不断增加  3,通过jconsole/jvisualvm可以看到,堆内存曲线不断上升,接近上限时,变成一条直线  4,日志报错java.lang.OutOfMemoryError: Java heap space

在案例练习前,先修改tomcat目录下conf/context.xml,将 这行的注释打开

三、内存泄露怎么定位?

1,通过jmap命令:jmap -histo pid | head -20,查看当前堆内存中实例数和占用内存最多的前20个对象  2,通过jvisualvm,进行远程堆dump,然后把dump文件下载下来,用jvisualvm打开进行分析,可以看到更直观的jvm中对象的信息

四、在什么样的场景下监控内存泄露问题?

1,在试压阶段,或任意场景都可以考虑通过jvisualvm和jstat监控jvm的情况  2,在稳定性场景中,一定要关注Jvm内存使用的情况,在长时间的压测下,最容易看出内存泄露的问题

五、Jvm常见参数

-Xms2048m:初始堆大小,建议



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有