一条sql 引起的 weblogic内存溢出 OutOfMemoryError:GetNewTLA

前几天项目在运行过程中突然报错: OutOfMemoryError:GetNewTLAi,查看日志最后发现,一段SQL引起,select* from A where 1=1 + ,标签的参数为空sql 1=1条件全表查询最后引发OutOfMemoryError:GetNewTLA,解决sql的问题,我回头又看GetNewTLA这个错误,我是头一次看到,后来查找资料了解到,这个错误是经常发生在JRockit的JVM上的,如果都用hotspot或者J9的JVM可能不会遇到这个问题。
TLA 全称是thread local area,它是在heap或者nursery中分配的一个块空间,是thread在执行的时候自己说占用的,具体的配置参数有:
-XXtlaSize:min=,preferred= -XXlargeObjectLimit: -XXminBlockSize:
在weblogic server中,找到》服务器启动》》参数》》-XXtlaSize:min=128k,preferred=512k,wasteLimit=128k
-XXtlaSize 默认大小是2kB, minimum不能小于large object limit

一个thread可以将一下小的对象分配在TLA区,这些对象是不需要和其他thread进行同步的,然后TLA里分配的对象也可以是非thead本地,它可以被其他任何thread所访问,而且也会被GC.如果当前的TLA占满了,就会继续申请新TLA区空间。

TLA的大小会影响其使用和分配的效率和速度,同时会影响GC的发生频率。更大一点的TLA区会让thead可以分配更大的对象在TLA而减少申请新TLA的频率。

R27.2以后的版本是运行thread将非常大的对象保存在TLA的。也就是说,增加TLA的大小可以预防分配对象时内存不够的问题,但是会增加发生内存碎片的问题。在R27.1以后的版本中,TLA的大小是动态的依赖当前的空闲空间大型,变化范围在minimum和preferred大小之间。

增加TLA的大小对thread分配大对象的是有一定的好处。
增加TLA的最小值minimum可能会提高GC的次数。
参考:原文链接:https://blog.csdn.net/heqinghua217/article/details/51699106

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
outofmemoryerror: insufficient是一种Java程序中的错误,意味着内存不足。这种错误通常在程序执行过程中尝试分配的内存超过了可用内存限制时发生。根据引用[1]和引用提供的信息,有几种解决该问题的方式: 1. 清理缓存:可以尝试清理项目的缓存数据,以释放一些内存资源。 2. 增加堆内存大小:可以通过修改Java虚拟机的启动参数,增加堆内存的大小。可以通过设置-Xmx参数来增加最大堆内存限制。 3. 增加服务器堆内存大小:如果项目在一个服务器上运行,可以考虑增加服务器的堆内存大小,比如Tomcat、WebLogic等。 根据引用中提供的信息,该问题也可能是由于IDEA内存溢出导致的。这可能是因为项目文件太大,在编译构建时缓存了大量数据,导致内存溢出。可以尝试清理IDEA的缓存或增加IDEA的堆内存大小来解决该问题。 综上所述,要解决outofmemoryerror: insufficient错误,可以尝试清理缓存、增加堆内存大小或增加服务器堆内存大小,同时也需要注意IDEA的内存使用情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [开发工具IDEA:Error: java: OutOfMemoryError: insufficient memory](https://blog.csdn.net/zhx__/article/details/123373533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值