Jmeter之内存溢出解决办法

使用Jmeter进行压力测试会遇到一段时间后报内存溢出的错误,导致Jmeter卡死。这是因为Jmeter默认的HEAP配置的太小了,解决办法如下:

1、Windows环境

   修改jmeter.bat,如下两行:

           set HEAP=-Xms512m -Xmx512m
           set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

     改为:

              set HEAP=-Xms512m -Xmx1024m
              set NEW=-XX:NewSize=128m -XX:MaxNewSize=1024m

根据经验:HEAP最多设置为物理内存的一半,如果HEAP超过物理内存的一半,会导致Jmeter运行变慢甚至内存溢出,原因是Java比较吃内存,占CPU。

注意:JDK32位的电脑Xms不能超过1500M,最多1378M,否则启动Jmeter会报错。

 

2、Linux环境

   修改jmeter.sh:

      java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"

 

3、查看JDK位数

   

   如果JDK是64位的话,最后一行会显示64-Bit,如果没有,则是32位的。

 

转载于:https://www.cnblogs.com/L-Test/p/8970805.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache JMeter 是一个广泛使用的开源性能测试工具,用于评估软件系统的性能和负载。然而,像所有其他工具一样,如果使用不当或面临高负载,JMeter可能会遇到内存溢出的问题。内存溢出通常发生在以下几个方面: 1. **循环和并发用户数设置过高**:当测试计划中包含大量的用户并发执行,且循环次数过多时,如果没有适当地调整线程池大小,就可能导致内存需求超过可用内存。 2. **大尺寸的数据集**:在使用数据驱动或者包含大数据量的脚本时,如果没有优化数据源或处理方式,JMeter可能会一次性加载大量数据到内存,从而引发内存溢出。 3. **未释放的资源**:如果在测试过程中有资源没有被正确地关闭或者清理(例如,HTTP响应缓存、文件句柄等),这些资源会占用内存,时间久了就会导致内存消耗过大。 4. **长时间运行**:长时间运行的测试可能使JMeter的内存逐渐积累,特别是如果测试没有定期清除已结束线程的数据。 要解决JMeter内存溢出问题,你可以尝试以下方法: - **优化测试计划**:减少循环次数,合理配置线程池大小。 - **分批执行**:将大请求拆分成小的请求,避免一次性加载过多数据。 - **监控内存使用**:使用内置的监视器或者第三方工具来实时查看内存使用情况。 - **及时释放资源**:确保每次请求完成后资源都被正确释放。 - **使用断言和监听器**:限制不必要的数据存储,比如限制查看结果的数量。 - **使用内存限制策略**:某些版本的JMeter支持设置内存使用上限,防止内存无限制增长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值