java 超过 xmx_什么会导致java进程大大超过Xmx或Xss限制?

我有7个不同的Java守护进程,我在3个不同的服务器上运行(全部7个)。 java命令行有-Xmx2048m和-Xss1024k。 在这3台服务器上,所有21个进程显示VIRT大小不超过2.5 GB。 根据哪个守护进程,RES大小从300到1.9 GB不等。

这是应该的。

input新的服务器。 更快的CPU,更多的RAM(16 GB而不是8 GB),稍微更新的java(旧服务器上的1.6.0_10-b33,新服务器上的1.6.0_31-b04)。 两个系统(和JVM)都是64位。

将2个守护进程移到了新的服务器上。 在新的服务器上,给予相同的任务,守护进程消耗的CPU(相当于一个核心的价值)要多得多,而且要做的更less。 (从旧系统上的5110处理器移动到新系统上的5620处理器)。

几乎完全是CPU使用的额外核心(GC线程??),并报告5 GB VIRT和2 GB RES用于一个守护进程,10.5 GB VIRT和2 GB RES用于另一个守护进程。

任何想法会导致java忽略(或似乎忽略,如果是这样的话)的内存限制?

原来这是一个glibc问题。

对我来说简短的答案是:

导出MALLOC_ARENA_MAX = 1

这减少了工艺占地面积(VIRT在顶部)多达5倍。 回到在CentOS 5中看到的级别。

最近版本的glibc有一个新的功能“每线程内存池”:

1.71.1日志部分的最后一项讨论它(并且指的是一个非公开的错误….)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值