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
相关实践学习
微服务实战-服务注册中心 - Nacos
Nacos是阿里巴巴于2018年7月发布的一个开源项目,它是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 支持几乎所有主流类型的服务的发现、配置和管理: Kubernetes Service  gRPC & Dubbo RPC Service  Spring Cloud RESTful Service  
目录
相关文章
|
4月前
|
SQL Java 关系型数据库
Dataphin功能Tips系列(53)-离线集成任务如何合理配置JVM资源
本文探讨了将MySQL数据同步至Hive时出现OOM问题的解决方案。
116 5
|
4月前
|
消息中间件 运维 监控
加一个JVM参数,让系统可用率从95%提高到99.995%
本文针对一个高并发(10W+ QPS)、低延迟(毫秒级返回)的系统因内存索引切换导致的不稳定问题,深入分析并优化了JVM参数配置。通过定位问题根源为GC压力大,尝试了多种优化手段:调整MaxTenuringThreshold、InitialTenuringThreshold、AlwaysTenure等参数让索引尽早晋升到老年代;探索PretenureSizeThreshold和G1HeapRegionSize实现索引直接分配到老年代;加速索引复制过程以及升级至JDK11使用ZGC。
534 82
加一个JVM参数,让系统可用率从95%提高到99.995%
|
10月前
|
Java
JVM内存参数
-Xmx[]:堆空间最大内存 -Xms[]:堆空间最小内存,一般设置成跟堆空间最大内存一样的 -Xmn[]:新生代的最大内存 -xx[use 垃圾回收器名称]:指定垃圾回收器 -xss:设置单个线程栈大小 一般设堆空间为最大可用物理地址的百分之80
|
11月前
|
监控 架构师 Java
JVM进阶调优系列(6)一文详解JVM参数与大厂实战调优模板推荐
本文详述了JVM参数的分类及使用方法,包括标准参数、非标准参数和不稳定参数的定义及其应用场景。特别介绍了JVM调优中的关键参数,如堆内存、垃圾回收器和GC日志等配置,并提供了大厂生产环境中常用的调优模板,帮助开发者优化Java应用程序的性能。
|
11月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
1012 3
|
11月前
|
Java Android开发 开发者
【编程进阶知识】精细调控:掌握Eclipse JVM参数配置的艺术
本文详细介绍了如何在Eclipse中配置JVM参数,包括内存的初始和最大值设置。通过具体步骤和截图演示,帮助开发者掌握JVM参数的精细调控,以适应不同的开发和测试需求。
212 1
|
Kubernetes Java 编译器
解锁极致性能:Quarkus如何让JVM应用调优变得前所未有的简单与高效!
Quarkus是一款专为GraalVM和OpenJDK设计的Kubernetes Native Java框架,采用AOT编译技术将Java应用转化为本地代码,大幅提升启动速度与运行效率。它简化了性能调优流程,如自动优化垃圾回收、类加载、内存管理及线程管理等,使开发者无需深入理解JVM细节即可轻松提升应用性能。与传统JVM应用相比,Quarkus显著降低了性能调优的复杂度。
298 2
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
|
C# 开发者 Windows
震撼发布:全面解析WPF中的打印功能——从基础设置到高级定制,带你一步步实现直接打印文档的完整流程,让你的WPF应用程序瞬间升级,掌握这一技能,轻松应对各种打印需求,彻底告别打印难题!
【8月更文挑战第31天】打印功能在许多WPF应用中不可或缺,尤其在需要生成纸质文档时。WPF提供了强大的打印支持,通过`PrintDialog`等类简化了打印集成。本文将详细介绍如何在WPF应用中实现直接打印文档的功能,并通过具体示例代码展示其实现过程。
1112 0
|
运维 监控 Java
【JVM 调优秘籍】实战指南:JVM 调优参数全解析,让 Java 应用程序性能飙升!
【8月更文挑战第24天】本文通过一个大型在线零售平台的例子,深入探讨了Java虚拟机(JVM)性能调优的关键技术。面对应用响应延迟的问题,文章详细介绍了几种常用的JVM参数调整策略,包括堆内存大小、年轻代配置、垃圾回收器的选择及日志记录等。通过具体实践(如设置`-Xms`, `-Xmx`, `-XX:NewRatio`, `-XX:+UseParallelGC`等),成功降低了高峰期的响应时间,提高了系统的整体性能与稳定性。案例展示了合理配置JVM参数的重要性及其对解决实际问题的有效性。
429 0

热门文章

最新文章