使用cgroup限制java使用的内存量-思路

1.       对一个正在运行着的进程来说,在不到达其内存使用量边界的情况下,扩大/缩小其cgroup分配的内存不会对它产生任何影响。

2.       在进程已经使用了一定量的内存的情况下,缩小其cgroup内存至小于已使用的内存量,有两种结果(可通过cgroup配置,oom_kill_disable=0时杀死进程,=1时挂起进程):

A.进程被杀死

B.进程被挂起,系统向cgroup中注册的oom处理函数发送一个oom消息;当cgroup内内存资源足够多时,进程恢复运行;当cgroup的oom_kill_disable重新被设置为0时,进程被杀死。

3. 在给定了cgroup内存限制使用量的情况下,当cgroup内有进程申请的内存超过此限制时,结果与2相同。

4. cgroup对内存使用的限制分为物理内存限制和swap区限制,swap区的限制不能小于物理内存的限制,当进程要使用的内存超过了cgroup物理内存限制时,进程开始使用swap区(内存页交换到磁盘),直至使用量超过swap区限制,结果与2相同。

 

对Java程序来说情况更复杂一些,因为JVM对进程使用的内存也有一定的控制能力

 

几个相关的JVM参数:

-Xms         jvm初始内存

-Xmx          jvm最大内存(超出进程将抛出OOM异常)

-XX:PermSize              初始非堆内存

-XX:MaxPermSize     最大非堆内存

 

1.       Jvm参数与cgroup对java进程的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值