对内存泄漏的监控定位

本文详细介绍了如何在Tomcat中配置JVM参数以优化内存使用,包括设置堆内存大小、新生代与老年代比例等。通过jmap、jstat和jconsole等工具监控GC情况和内存使用,识别内存泄漏的迹象,如TPS下降、Old Gen增长、频繁Full GC等。同时,利用jvisualvm进行远程堆dump分析,定位内存泄漏问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

性能测试之内存泄漏定位


序言:在稳定性场景测试中,也就是长时间(至少6个小时)压测中比较容易发现内存泄漏问题,以下是一些步骤:监控以及根据现象推断定位代码问题

一、在tomcat中配置jvm参数
背景:jvm虚拟机主要由栈内存和堆内存以及永久 代(方法区),堆=新生代+老年代;新生代=eden+S0+S1;

  • 1、进入tomcat中bin目录下catalina.sh文件

    增加:
    在这里插入图片描述

-Xms2048m,初始堆大小,建议<物理内存的1/4,默认值为物理内存的1/64
-Xmx2048m,最大堆大小,建议与-Xms保持一致,默认值为物理内存的1/4
-Xmn512m,新生代大小,建议不超过堆内存的1/2
-Xss256k,线程堆栈大小,建议256k
-XX:PermSize=256m,永久代初始值,默认值为物理内存的1/64
-XX:MaxPermSize=256m,永久代最大值,默认值为物理内存的1/4
-XX:SurvivorRatio=8:年轻带中Eden区和Survivor区的比例,默认为8:1,即Eden(8),From Space(1),ToSpace(1)
-XX:MaxTenuringThreshold=15:晋升到老年代的对象年龄,每个对象坚持过一次MinorGC后对象年龄+1,默认值是15,年龄超过15进入到老年代,该参数在串行GC时有效
-XX:PretenureSizeThreshold=3145728:单位字节,只对Serial和ParNew两款收集器有效,新生代采用Parallel
Scavenge GC时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值