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 
目录
相关文章
|
5月前
|
Arthas 监控 Java
(十一)JVM成神路之性能调优篇:GC调优、Arthas工具详解及各场景下线上最佳配置推荐
“在当前的互联网开发模式下,系统访问量日涨、并发暴增、线上瓶颈等各种性能问题纷涌而至,性能优化成为了现时代开发过程中炙手可热的名词,无论是在开发、面试过程中,性能优化都是一个常谈常新的话题”。
530 3
|
2月前
|
Java Android开发 开发者
【编程进阶知识】精细调控:掌握Eclipse JVM参数配置的艺术
本文详细介绍了如何在Eclipse中配置JVM参数,包括内存的初始和最大值设置。通过具体步骤和截图演示,帮助开发者掌握JVM参数的精细调控,以适应不同的开发和测试需求。
53 1
|
3月前
|
Kubernetes Java 编译器
解锁极致性能:Quarkus如何让JVM应用调优变得前所未有的简单与高效!
Quarkus是一款专为GraalVM和OpenJDK设计的Kubernetes Native Java框架,采用AOT编译技术将Java应用转化为本地代码,大幅提升启动速度与运行效率。它简化了性能调优流程,如自动优化垃圾回收、类加载、内存管理及线程管理等,使开发者无需深入理解JVM细节即可轻松提升应用性能。与传统JVM应用相比,Quarkus显著降低了性能调优的复杂度。
126 2
|
4月前
|
Java
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
|
5月前
|
存储 Java
java 服务 JVM 参数设置配置
java 服务 JVM 参数设置配置
169 3
|
5月前
|
安全 Java fastjson
JVM 配置参数 -D,-X,-XX 的区别
JVM 配置参数 -D,-X,-XX 的区别
115 2
|
4月前
|
算法 Java 应用服务中间件
探索JVM垃圾回收算法:选择适合你应用的最佳GC策略
探索JVM垃圾回收算法:选择适合你应用的最佳GC策略
|
4月前
|
存储 监控 算法
深入解析JVM内部结构及GC机制的实战应用
深入解析JVM内部结构及GC机制的实战应用
|
5月前
|
弹性计算 运维 Java
Serverless 应用引擎使用问题之JVM进行垃圾回收时重启,该如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
5月前
|
监控 Java 中间件
FGC频繁导致CPU 飙升定位及JVM配置优化总结
FGC频繁导致CPU 飙升定位及JVM配置优化总结
200 0