EDAS应用JVM参数配置生产实践

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 整理了近期在项目上做的一些技术研究,希望与大家共同探讨交流。 虽然可以默认不优化参数,但是,企业生产实践中,仍建议配置优化,已达到最佳的服务状态。 下面是在长时间的生产环境运行中得出的参数配置建议。

整理了近期在项目上做的一些技术研究,希望与大家共同探讨交流。

如下参数建议是在长时间的生产环境运行中得出的参数配置建议。曾在多个大型项目中使用,单个项目中最大EDAS节点数量超过500个。虽然可以默认不优化参数,但是,企业生产实践中,仍建议配置优化,已达到最佳的服务状态。

EDAS应用可在EDAS控制台配置JVM参数,建议标准如下,可参考主机配置和java版本进行选择:

提示:

如下参数是在没有其他消耗内存的进程运行状态下的JVM配置
MaxMetaspaceSize与MaxPermSize根据Java版本选择使用
年轻代GC策略使用ParNew

4G内存服务器

-Xms1024m     ===    初始堆内存
-Xmx2048m     ===    最大堆内存
-XX:MaxMetaspaceSize=1024m     #java8  === 最大元空间
-XX:MaxPermSize=1024m          #java7  
-XX:+UseConcMarkSweepGC        ===  使用CMS收集器(年轻代gc策略使用ParNew)
-XX:+PrintGC                   ===  输出GC日志(输入gc日志路径默认开启)
-XX:+PrintGCDateStamps         ===  输出GC日志的形式(输入gc日志路径默认开启)
-Xloggc:/home/admin/gc.log     ===  GC日志路径 
-XX:+UseGCLogFileRotation      ===  启用GC日志文件的自动转储(输入gc日志路径默认开启)
-XX:NumberOfGCLogFiles=3       ===  文件个数
-XX:GCLogFileSize=300m         ===  文件大小
-XX:+HeapDumpOnOutOfMemoryError  === OOM 内存溢出时dump内存(配置dump路径自动开启)
-XX:HeapDumpPath=/home/admin     === dump路径

_1
_2

8G内存服务器

-Xms2048m 
-Xmx4096m 
-XX:MaxMetaspaceSize=1024m     #java8
-XX:MaxPermSize=1024m          #java7
-XX:+UseConcMarkSweepGC 
-XX:+PrintGC 
-XX:+PrintGCDateStamps 
-Xloggc:/home/admin/gc.log 
-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=3 
-XX:GCLogFileSize=300m 
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/admin

16G及以上内存服务器

-Xms4096m 
-Xmx8192m 
-XX:MaxMetaspaceSize=1024m     #java8
-XX:MaxPermSize=1024m          #java7
-XX:+UseConcMarkSweepGC 
-XX:+PrintGC 
-XX:+PrintGCDateStamps 
-Xloggc:/home/admin/gc.log 
-XX:+UseGCLogFileRotation 
-XX:NumberOfGCLogFiles=3 
-XX:GCLogFileSize=300m 
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/admin
相关实践学习
通过EDAS实现K8s微服务应用的金丝雀发布
本实验旨在通过使用分布式应用服务EDAS纳管容器服务ACK Serverless,体验微服务应用的部署、访问和高级发布能力。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
目录
相关文章
|
9月前
|
缓存 Java
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
72 0
|
6月前
|
Kubernetes Java 编译器
解锁极致性能:Quarkus如何让JVM应用调优变得前所未有的简单与高效!
Quarkus是一款专为GraalVM和OpenJDK设计的Kubernetes Native Java框架,采用AOT编译技术将Java应用转化为本地代码,大幅提升启动速度与运行效率。它简化了性能调优流程,如自动优化垃圾回收、类加载、内存管理及线程管理等,使开发者无需深入理解JVM细节即可轻松提升应用性能。与传统JVM应用相比,Quarkus显著降低了性能调优的复杂度。
179 2
|
8月前
|
监控 算法 Java
深入探索Java虚拟机:性能监控与调优实践
在面对日益复杂的企业级应用时,Java虚拟机(JVM)的性能监控和调优显得尤为重要。本文将深入探讨JVM的内部机制,分析常见的性能瓶颈,并提供一系列针对性的调优策略。通过实际案例分析,我们将展示如何运用现代工具对JVM进行监控、诊断及优化,以提升Java应用的性能和稳定性。
|
8月前
|
JSON Java BI
一次Java性能调优实践【代码+JVM 性能提升70%】
这是我第一次对系统进行调优,涉及代码和JVM层面的调优。如果你能看到最后的话,或许会对你日常的开发有帮助,可以避免像我一样,犯一些低级别的错误。本次调优的代码是埋点系统中的报表分析功能,小公司,开发结束后,没有Code Review环节,所以下面某些问题,也许在Code Review环节就可以避免。
184 0
一次Java性能调优实践【代码+JVM 性能提升70%】
|
7月前
|
算法 Java 应用服务中间件
探索JVM垃圾回收算法:选择适合你应用的最佳GC策略
探索JVM垃圾回收算法:选择适合你应用的最佳GC策略
|
7月前
|
存储 监控 算法
深入解析JVM内部结构及GC机制的实战应用
深入解析JVM内部结构及GC机制的实战应用
|
8月前
|
弹性计算 运维 Java
Serverless 应用引擎使用问题之JVM进行垃圾回收时重启,该如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
9月前
|
存储 缓存 监控
JVM中G1垃圾收集器:原理、过程和参数配置深入解析
JVM中G1垃圾收集器:原理、过程和参数配置深入解析
|
9月前
|
IDE Java Linux
在Maven中设置JVM系统参数及Java应用调试实例
在Maven中设置JVM系统参数及Java应用调试实例
407 0
|
10月前
|
Java 数据库连接 Spring
K8S+Docker理论与实践深度集成java面试jvm原理
K8S+Docker理论与实践深度集成java面试jvm原理