关于java 程序运行在容器中频繁被杀

前几天开发一个功能 主要是转发数据的 然后一开始也没压测 当时想的发送的数据没有多少qps 但是到领导那里需要压测报告所有又当了一次测试
测试 8个 kafka 数据 发送打满 大概总qps 2400多 cpu 占用 400% 基本满了 因为是容器 设定 4 核心 但是发现 内存疯狂增长 几秒就oom了 被容器杀死了,查看堆内内错发现GC健康 而且 老年代 基本都没怎用 为什么还会oom 然后就开启了漫长的gc日志查看 哎都是泪啊
突然灵光一闪 哎 java 的内存除了堆内还一堆堆外 然后一看 真的因为堆外 哎一言难进 所以java 不知道自己在容器中
目前临时解决 方案 java 设置堆内。内存 占用别超过容器内存的0.75 官方建议 然后 将原空间 直接内存都限制住 也别超过 0.9 剩下的 0.1 就留给其他java 内存空间 哎 附上我的 一些 参数 仅供参考 4g内存:

 -Xmx3072m -Xms3072m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -XX:MaxDirectMemorySize=128m
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值