首页 > 系统相关 >k8s 的java程序内存设置多大合适 怎么设置

k8s 的java程序内存设置多大合适 怎么设置

时间:2022-09-18 20:12:15浏览次数:143  
标签:容器 java XX 内存 设置 限制 k8s

 

主要参考的三个博客
参考1:https://www.cnblogs.com/xiaoqi/p/container-jvm.html
参考2:https://www.imooc.com/article/292785?block_id=tuijian_wz
参考3:https://blog.csdn.net/qq_40378034/article/details/110677269

1)采用JDK8-191以上的jdk版本

由于jdk8-191以前的jdk版本,是不能感知到自己是在容器中运行的,所以对容器设置的资源限制,java程序不能感知,因此会按宿主机的总内存来申请资源

2)使用JVM新的资源限制参数且不相等

java -XX:MaxRAMPercentage=90.0 -XX:MinRAMPercentage=60.0 -jar register.jar

[MAX|MIN]RAMPercentage参数,是191版本后新增加的参数,该参数可以感知容器的资源限制,并以此限制为申请的最大最小资源量,即Xms和Xmx

由参考文章3中的结论:Xms和Xmx不相等时,在可能的情况下,GC过程会慢慢释放内存回操作系统,而我们 设置的[MAX|MIN]RAMPercentage这两个参数不等,达到的结果就是Xms和Xmx不相等

# 此命令可以在容器中验证,java服务按此规则申请时,会申请的内存大小
java -XX:+PrintFlagsFinal -XX:MaxRAMPercentage=90.0 -XX:MinRAMPercentage=60.0 -version | grep -Ei "heapsize|rampercentage"

3)配置容器的资源限制参数

在前两条的基础上,最后在配合容器的资源限制功能后,就能做到

  1. 限制容器的内存上限
  2. 容器内的jvm服务,能根据资源限制来申请内存
  3. 由于jvm会释放内存,所以可先设一个较大值,经过长期观察,可以确定该服务的常规内存水平
  4. 最终可以实现合理设置了容器、宿主机、java程序三者的内存的目的

标签:容器,java,XX,内存,设置,限制,k8s
From: https://www.cnblogs.com/gaoyuechen/p/16705626.html

相关文章

  • java: Flyweight Patterns
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*享元模式FlyweightPatterns*历史版本:JDK14.02*2022-09-12创建者geovindu*2022-09-1......
  • javascript中的一些细节,undefined和null的区别,什么情况下是false,函数赋值,等等
    如果不赋值,就使用默认值,page=1,size=10如果赋值按位置赋值,如果要跨越位置赋值size,则page定义为undefined则使用的是默认值如下图:javascript什么情况下是false,什么情况......
  • Java8/18
    Java流程控制1.用户交互ScannerScanner是Java5提供的一个工具类(java.until.Scanner),用来获取用户的输入,实现人机交互。基本语法:Scanners=newScanner(System.in);......
  • Java8/18
    Java方法1.方法概念eg:System.out.println();----System是一个系统类,out是System类的一个输出对象,println()就是一个方法什么是方法:Java方法是语句的集合,他们在一起执行......
  • Java static关键字
    在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。注意:static......
  • JAVA Lambda表达式
    JAVALambda表达式函数式在数学中,函数就是有输入量,输出量的一套计算方案,也就是拿数据做操作面向对象思想强调“必须通过对象形式来做事情”函数式思想则尽量忽略......
  • 电信l1研发工程师 --- java题库
     编程题目1,严格按照题目提示编程。比如定义一个公共类Main和静态方法mainpublicclassMain{ publicstaticvoidmain(String[]args){ //这里开始写程序 }}2.不要带......
  • Java工具类-LocalDate工具类
    背景介绍Java中1.8之前有date类和calendar类。其中date类到了1.8大部分的方法被弃用了说明这些方法都有很大的缺陷,而且date类如果不格式化可读性十分差,所以就需要格式......
  • java进程占用swap分区问题,导致swap分区快速增满不够用!!
     foriin$(cd/proc;ls|grep"^[0-9]"|awk'$0>100');doawk'/Swap:/{a=a+$2}END{print'"$i"',a/1024"M"}'/proc/$i/smaps2>/dev/null;done|sort-k2nr|......
  • 解决 java.lang.IllegalStateException: Failed to load ApplicationContext
    问题:Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'sensitiveFilter':Invocationofinitmethodfailed;nes......