【Java专题_09】生产环境Jvm参数设置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【Java专题_09】生产环境Jvm参数设置

前言

最近公司有个独立的小模块是我这边负责开发上线,涉及到jvm参数调整方面,主要是根据服务器的配置4C16G配置了以下的参数,程序单纯只是接口查询redis以及信息上报,数据量大概是每天3000万!

nohup java -Xmx10G -Xms10G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/applog/miservice/logs/ -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/applog/miservice/logs/gc.log -jar miservice.jar > /dev/null 2>&1 &
参数解析:
-Xmx10G:将Java堆的最大内存大小设置为 10G。
-Xms10G:将Java堆的初始内存大小设置为 10G。
-XX:+HeapDumpOnOutOfMemoryError:指定在发生内存溢出错误时生成堆转储文件。
-XX:HeapDumpPath=/applog/miservice/logs/ :指定堆转储文件的日志路径,将堆转储文件保存在 /applog/miservice/logs/  目录中。
-XX:+UseG1GC:启用G1垃圾回收器。
-XX:MaxGCPauseMillis=200:设置垃圾回收的最大停顿时间为 200 毫秒。
-XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps:打印GC日志信息,包括详细的GC事件、日期时间戳等。
-Xloggc:/applog/miservice/logs/gc.log:将GC日志输出到指定的日志文件/applog/miservice/logs/gc.log。
-jar miservice.jar:指定要运行的Java应用程序的可执行JAR文件。
请根据你的具体需求进行调整,并确保将 -jar miservice.jar 替换为你要运行的Java应用程序的实际可执行JAR文件。另外,确保指定的日志路径存在并且有适当的写入权限。
nohup:在命令行中运行Java应用程序,并将其与终端分离,使其在后台执行。
> /dev/null 2>&1:将标准输出和标准错误重定向到 /dev/null,这样不会在当前目录下生成 nohup.out 文件。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
监控 算法 Java
Java虚拟机(JVM)垃圾回收机制深度剖析与优化策略####
本文作为一篇技术性文章,深入探讨了Java虚拟机(JVM)中垃圾回收的工作原理,详细分析了标记-清除、复制算法、标记-压缩及分代收集等主流垃圾回收算法的特点和适用场景。通过实际案例,展示了不同GC(Garbage Collector)算法在应用中的表现差异,并针对大型应用提出了一系列优化策略,包括选择合适的GC算法、调整堆内存大小、并行与并发GC调优等,旨在帮助开发者更好地理解和优化Java应用的性能。 ####
55 0
|
8天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
1月前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
1月前
|
存储 监控 算法
Java虚拟机(JVM)垃圾回收机制深度解析与优化策略####
本文旨在深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法及参数调优方法。通过剖析垃圾回收的生命周期、内存区域划分以及GC日志分析,为开发者提供一套实用的JVM垃圾回收优化指南,助力提升Java应用的性能与稳定性。 ####
|
2月前
|
机器学习/深度学习 监控 算法
Java虚拟机(JVM)的垃圾回收机制深度剖析####
本文深入探讨Java虚拟机(JVM)的垃圾回收机制,揭示其工作原理、常见算法、性能调优策略及未来趋势。通过实例解析,为开发者提供优化Java应用性能的思路与方法。 ####
62 1
|
2月前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
126 1
|
2月前
|
Java
JVM内存参数
-Xmx[]:堆空间最大内存 -Xms[]:堆空间最小内存,一般设置成跟堆空间最大内存一样的 -Xmn[]:新生代的最大内存 -xx[use 垃圾回收器名称]:指定垃圾回收器 -xss:设置单个线程栈大小 一般设堆空间为最大可用物理地址的百分之80
|
12天前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
63 17
|
23天前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
8天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题