配置Java启动参数

在容器服务K8s集群或Serverless K8s集群中创建或部署应用时,您可以通过Java启动参数对JVM进行内存、GC(垃圾回收)策略以及服务注册与发现等配置。正确配置Java启动参数有助于降低GC(垃圾回收)开销,从而缩短服务器响应时间并提高吞吐量。

在创建应用时配置Java启动参数

  1. 登录EDAS控制台,在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择命名空间,然后在应用列表页面左上角,单击创建应用

  2. 应用基本信息页签选择集群类型和应用运行环境,然后在页面最下方单击下一步
    参数描述
    集群类型选择Kubernetes集群
    应用运行环境选择Java应用类型再选择部署方式。
    • 自定义:适用于在K8s集群中使用自定义的镜像部署应用。
    • Java:支持通用的JAR包部署,适用于Dubbo和Spring Boot应用。在选择后可更改Java环境。
    • Tomcat:支持通用的WAR包部署,适用于Dubbo和Spring应用。在选择后可更改Java环境和容器版本。
    • EDAS-Container(HSF):适用于使用WAR或者FatJar部署HSF应用。在选择后可更改Java环境、Pandora版本和Ali-Tomcat版本。
  3. 应用配置页签,设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步

  4. 应用高级设置页签展开Java启动参数配置,单击Java启动参数配置右侧的编辑,并根据您的业务需求完成以下配置。
    参数描述
    内存配置您可完成以下参数的配置:
    • 初始堆内存:初始化的堆大小,单位为MB,0表示不限制使用大小。
    • 最大堆内存:最大堆内存,单位为MB,可用范围为0~0.85*应用容器的Limit内存。
    • 初始年轻代:初始化年轻代大小,单位为MB。
    • 最大年轻代:最大的年轻代的大小,单位为MB,填写max_uintx意味着无上限的使用内存。
    • Eden/Survivor比例:Eden/Survivor内存大小的比例。
    • 老年代/新生代比例:老年代/新生代内存大小的比例。
    • 初始持久代:永久代的初始化大小,单位为MB。
    • 最大持久代:永久代的最大大小,单位为MB。
    • 最大直接内存:允许使用NIO类型的直接内存的最大值大小,单位为MB。
    • 线程栈大小:线程栈大小,单位为KB。
    应用HSF应用可以配置以下应用信息:
    • 绑定端口:指定HSF的启动服务绑定端口,默认值为12200。
    • 序列化方式:指定HSF的序列化方式,默认值为hessian。
    • 线程池最小:指定HSF的服务端最小线程池大小,默认值为50。
    • 线程池最大:指定HSF的服务端最大线程池大小,默认值为720。
    GC策略您可配置以下垃圾回收策略:
    • 年轻代GC策略:用于设置年轻代垃圾回收器。
    • 老年代GC策略:用于设置老年代垃圾回收器,必须先配置年轻代垃圾回收器。
    • 并发GC线程数:配置并发GC将使用的线程数。
    • 并行GC线程数:配置并行GC将使用的线程数。
    协程特性当您想使用协程特性时,可以开启协程特性开关。
    说明 只有在选择Dragonwell作为JDK时才会出现协程特性配置项。
    工具设置GC日志文件的日志目录文件个数文件大小,以及内存溢出时的Dump路径
    服务注册和发现配置当您想使用自建Nacos注册中心时,可以勾选该配置项。当未选中此选项时,将自动替换解析为EDAS共享版注册中心。
    自定义当上述配置参数不能满足您的配置需求时,您可以配置自定义参数,多个参数用空格分隔。
  5. 完成设置后单击创建应用

  6. 应用创建完成页签确认应用基本信息应用配置应用高级设置等信息,确认完毕后单击确定创建应用

    应用总览页面顶部提示信息中,单击查看详情,可在变更记录页面查看变更流程。应用部署需要几分钟,请您耐心等待。变更完成后在应用总览页面的基本信息区域查看实例的运行状态,如果显示为Pod运行中,说明应用部署成功。

在更新应用时配置Java启动参数

您可在创建应用时配置Java启动参数,也可以在部署应用时配置或更新Java启动参数。

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择命名空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。

  3. 应用总览基本信息页面的右上角,选择部署 > 部署

  4. 选择部署模式页面,选择具体的部署方式,然后在所选方式区域的右上角,单击开始部署

  5. 设置应用的环境和部署包信息后展开Java启动参数配置,单击Java启动参数配置右侧的编辑,根据您的需求完成配置后单击确定
    参数描述
    内存配置您可完成以下参数的配置:
    • 初始堆内存:初始化的堆大小,单位为MB,0表示不限制使用大小。
    • 最大堆内存:最大堆内存,单位为MB,可用范围为0~0.85*应用容器的Limit内存。
    • 初始年轻代:初始化年轻代大小,单位为MB。
    • 最大年轻代:最大的年轻代的大小,单位为MB,填写max_uintx意味着无上限的使用内存。
    • Eden/Survivor比例:Eden/Survivor内存大小的比例。
    • 老年代/新生代比例:老年代/新生代内存大小的比例。
    • 初始持久代:永久代的初始化大小,单位为MB。
    • 最大持久代:永久代的最大大小,单位为MB。
    • 最大直接内存:允许使用NIO类型的直接内存的最大值大小,单位为MB。
    • 线程栈大小:线程栈大小,单位为KB。
    应用HSF应用可以配置以下应用信息:
    • 绑定端口:指定HSF的启动服务绑定端口,默认值为12200。
    • 序列化方式:指定HSF的序列化方式,默认值为hessian。
    • 线程池最小:指定HSF的服务端最小线程池大小,默认值为50。
    • 线程池最大:指定HSF的服务端最大线程池大小,默认值为720。
    GC策略您可配置以下垃圾回收策略:
    • 年轻代GC策略:用于设置年轻代垃圾回收器。
    • 老年代GC策略:用于设置老年代垃圾回收器,必须先配置年轻代垃圾回收器。
    • 并发GC线程数:配置并发GC将使用的线程数。
    • 并行GC线程数:配置并行GC将使用的线程数。
    协程特性当您想使用协程特性时,可以开启协程特性开关。
    说明 只有在选择Dragonwell作为JDK时才会出现协程特性配置项。
    工具设置GC日志文件的日志目录文件个数文件大小,以及内存溢出时的Dump路径
    服务注册和发现配置当您想使用自建Nacos注册中心时,可以勾选该配置项。当未选中此选项时,将自动替换解析为EDAS共享版注册中心。
    自定义当上述配置参数不能满足您的配置需求时,您可以配置自定义参数,多个参数用空格分隔。
    重要 单击确定后,该应用将会被重启,请在业务较少的时间段进行。

查看执行结果

  • 方法一:

    在应用的变更记录页面中查看应用变更详情,如果显示执行成功,则表示部署成功,即配置已生效。

  • 方法二:

    应用总览页面单击运行状态右侧的Pod运行状态链接,在容器组(Pod)区域查看Pod的状态,如果显示为代表运行中的绿色圆圈,则说明部署成功,配置已生效。

EDAS容器服务K8s和Serverless K8s交流群

如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23197114加入钉钉群进行反馈。