性能测试全栈笔记:60.性能案例分析-内存泄露

作者: admin 分类: 性能专题 发布时间: 2023-01-22 11:22

本期专题:性能测试全栈笔记:60.性能案例分析-内存泄露

1.查看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等工具对文件进行分析

2.内存泄露有什么现象?

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

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注