Jvm G1与ZGC启动参数
G1GC
G1GC 启动参数示例
-XX:+UseG1GC
-Xms4g
-Xmx4g
-XX:MaxGCPauseMillis=200
-XX:InitiatingHeapOccupancyPercent=45
-XX:G1HeapRegionSize=16m
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=4
-XX:MetaspaceSize=128m
-XX:MaxMetaspaceSize=512m
-XX:+ParallelRefProcEnabled
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/Users/xuechenxi/gallant/heapdumps
-XX:+PrintGCDetails
-verbose:gc
-XX:+UseAdaptiveSizePolicy
-Xlog:gc*:file=/Users/xuechenxi/gallant/gc.log:time,level,tags
-XX:+UnlockDiagnosticVMOptions
-XX:+PrintFlagsFinal
参数解释
- 堆大小设置
-Xms4g -Xmx4g
设置初始堆和最大堆大小为 4G。
- G1 垃圾收集器
-XX:+UseG1GC
启用 G1 垃圾收集器。
- 最大 GC 暂停时间
-XX:MaxGCPauseMillis=200
目标是将最大 GC 暂停时间控制在 200 毫秒以内。
- 启动并发标记周期的堆占用率阈值
-XX:InitiatingHeapOccupancyPercent=45
当堆内存使用率达到 45% 时,启动并发标记周期。
- 堆区域大小
-XX:G1HeapRegionSize=16m
设置 G1 堆区域的大小为 16M。这个值应该是 2 的幂次方,范围在 1M 到 32M 之间。
- 并发 GC 线程和并行 GC 线程
-XX:ConcGCThreads=2 -XX:ParallelGCThreads=4
设置并发 GC 线程数和并行 GC 线程数。
- 元空间设置
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
设置元空间的初始大小和最大大小。
- 并行引用处理
-XX:+ParallelRefProcEnabled
启用并行引用处理,减少垃圾回收暂停时间。
- 内存不足时生成堆转储
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdumps
内存不足时生成堆转储,并指定堆转储文件的路径。
- 垃圾回收日志
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy -Xlog:gc*:file=/path/to/gc.log:time,level,tags
启用详细的垃圾回收日志记录,并将日志输出到指定文件。
- 垃圾回收日志文件轮转
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=20M
启用垃圾回收日志文件轮转,最多保留 10 个日志文件,每个文件大小为 20M。
这些参数是一个初始的优化建议,你可以根据实际应用的性能表现进行进一步的调整
ZGC
关键参数
- -XX:+UseZGC:启用 ZGC。
- -Xms32g -Xmx32g:设置初始堆大小和最大堆大小为 32 GB。
- -XX:SoftMaxHeapSize=28g:设置软最大堆大小。
- -XX:+UnlockExperimentalVMOptions:解锁实验性 JVM 选项。
- -XX:+ZGenerational:启用 ZGC 的世代模式。
- -XX:ZCollectionInterval=10:设置两次垃圾回收之间的最短间隔时间。
- -XX:ZAllocationSpikeTolerance=5.0:设置 ZGC 对内存分配峰值的容忍度。
- -Xlog:gc*:file=/path/to/gc.log:time,level,tags:启用 GC 日志并输出到指定文件。
- -Xlog:alloc*:file=/path/to/allocation.log:time,level,tags:启用分配日志并输出到指定文件(可选)。
- -XX:+UseStringDeduplication:启用字符串去重。
- -XX:+HeapDumpOnOutOfMemoryError:在发生 OOM 时生成堆转储。
- -XX:HeapDumpPath=/path/to/heapdump:指定堆转储文件的保存路径。
- -XX:+CrashOnOutOfMemoryError:在发生 OOM 时崩溃并生成错误报告。
- -XX:ErrorFile=/path/to/hs_err_pid%p.log:指定错误报告文件的保存路径。
- -XX:+UnlockDiagnosticVMOptions:解锁诊断性的 JVM 选项(仅调试时使用)。
- -XX:+PrintFlagsFinal:打印所有 JVM 选项及其最终值(仅调试时使用)。
- -Dcom.sun.management.jmxremote:启用 JMX 远程监控。
- -Dcom.sun.management.jmxremote.port=9010:指定 JMX 远程监控端口。
- -Dcom.sun.management.jmxremote.authenticate=false:禁用 JMX 远程监控认证(生产环境建议启用认证)。
- -Dcom.sun.management.jmxremote.ssl=false:禁用 JMX 远程监控 SSL(生产环境建议启用 SSL)。
- -jar your-application.jar:启动应用程序。
常见日志标签
- gc: 垃圾收集相关的日志。
- alloc: 内存分配相关的日志。
- class: 类加载相关的日志。
- os: 操作系统相关的日志。
- safepoint: 安全点相关的日志。
注意事项
- 堆大小:根据你的应用需求和可用内存调整 -Xms 和 -Xmx 参数。
- 日志路径:确保指定的日志文件路径存在且有写权限。
- JMX 配置:在生产环境中启用 JMX 认证和 SSL,以确保安全性。
�通过这些参数配置,你可以优化 ZGC 的性能,并获取详细的 GC 和内存分配日志,以便更好地监控和调优 JVM 的内存管理。
相关文章:
Jvm G1与ZGC启动参数
G1GC G1GC 启动参数示例 -XX:UseG1GC -Xms4g -Xmx4g -XX:MaxGCPauseMillis200 -XX:InitiatingHeapOccupancyPercent45 -XX:G1HeapRegionSize16m -XX:ConcGCThreads2 -XX:ParallelGCThreads4 -XX:MetaspaceSize128m -XX:MaxMetaspaceSize512m -XX:ParallelRefProcEnabled -XX:…...
zdpgo_gin_zap 整合zdpgo_gin框架和zdpgo_zap框架的日志中间件,用于实现路由日志记录
zdpgo_gin_zap 整合zdpgo_gin框架和zdpgo_zap框架的日志中间件,用于实现路由日志记录 安装 go get github.com/zhangdapeng520/zdpgo_gin_zap使用教程 基本用法 package mainimport ("fmt""time"gin "github.com/zhangdapeng520/zdpg…...
FOC电流环
interrupt void ISRTimer0(void) { IQ_Ref2.2;//在电流环下给负电流电机反转 IQ_Fdbiq; IQ_ErrorIQ_Ref-IQ_Fdb; IQ_UpIQ_Kp*IQ_Error; IQ_UiIQ_Ui IQ_Ki*IQ_Up IQ_Kc*IQ_SatErr…...

工业设备数据采集方案的设计实施与应用-天拓四方
随着工业4.0时代的来临,工业设备数据采集成为了提升生产效率、优化能源管理、实现智能化决策的关键环节。本文将围绕工业设备数据采集的重要性、方案设计实施以及TDE工业网关的应用实践展开探讨,以期为相关企业提供一种清晰、专业且实操性强的数据采集方…...

【MySQL】索引——索引的实现、B+ vs B、聚簇索引 VS 非聚簇索引、索引操作、创建索引、查询索引、删除索引
文章目录 MySQL5. 索引的实现5.1 B vs B5.2 聚簇索引 VS 非聚簇索引 6. 索引操作6.1 创建主键索引6.2 创建唯一索引6.3 创建普通索引6.4 创建全文索引6.5 查询索引6.6 删除索引 MySQL 5. 索引的实现 因为MySQL和磁盘交互的基本单位为Page(页)。 MySQL 中…...

剖析HTML 元素——WEB开发系列02
HTML元素是构成HTML文档结构的基本单位,定义了页面上的不同部分和内容。HTML元素可以包含不同类型的内容,如文本、图片、链接、表格等,每种元素都有其特定的用途和语义。通过组合和嵌套不同的HTML元素,可以创建复杂的网页结构和布…...

影响3D打印零件品质的关键因素探析
随着科技的飞速发展,3D打印技术作为一种革命性的制造方式,正逐渐渗透到各个行业和领域。然而,尽管3D打印技术在设计和制造上带来了前所未有的灵活性和效率,但其零件品质却受到多种因素的复杂影响。本文将从设备性能、材料选择、工…...

Oracle事务是怎么练成的
什么是事务 事务是数据库管理系统执行过程的一个逻辑单位,由一系列有限的数据库操作序列构成,事务必须满足ACID属性。ACID理论是数据库中最重要的概念之一,分别代表原子性(Atomicity)、一致性(Consisten…...

线程与多线程(一)
线程与多线程(一) 一、线程1、概念2、示意图3、虚拟地址转换到物理地址4、与进程相比的优点5、与进程相比的缺点6、与进程的关系(1)线程独有(2)共享(3)示意图 二、POSIX线程库三、创…...

连接其他主机上的redis连接不上`telnet: Unable to connect to remote host: Connection refused`
telnet: Unable to connect to remote host: Connection refused 这个错误通常表示目标主机(192.168.8.29)上的服务(6379端口)没有运行,或者主机的防火墙/网络设置阻止了连接。 你可以尝试以下步骤来解决问题…...
dijkstral算法详解
import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Map;public class test39 {// 定义节点类,表示图中的顶点public static class Node {public int value; // 节点的值,即编号public int in; // 进入…...

创意指南丨AR数学沉浸式空间体验
AR学习种类那么多,哪款最吸引你? 星河造梦坊和Unity联手打造的沉浸式空间AR无疑是其中的佼佼者。 这款应用不仅利用AR技术将抽象的数学概念变得生动有趣,还通过互动体验让学习者仿佛置身于一个充满奇幻色彩的数学世界中。 无论是学生还是教…...

linux文件——深度学习文件fd、文件系统调用
前言:从本片开始正式进入linux文件的学习,本片内容主要是文件的fd。 本篇内容博主将要先带友友回忆C语言中的文件操作接口,然后再过渡到操作系统中的系统调用的学习,最后理解操作系统中的文件操作。 ps:本节内容设计一…...

003集——C#数据类型 及大小端序转换——C#学习笔记
如需得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸: using System;namespace DataTypeApplication {class Program{…...

结构化输出及其使用方法
在 LLM 应用程序中构建稳健性和确定性 图片来自作者 欢迎来到雲闪世界。OpenAI最近宣布其最新的gpt-4o-2024–08–06模型支持结构化输出。与大型语言模型 (LLM) 相关的结构化输出并不是什么新鲜事——开发人员要么使用各种快速工程技术,要么使用第三方工具。 在本文…...

yolov8人脸识别案例
GitHub - wangWEI201901/YOLOv8-Detection-Project: 🛣️基于YOLOv8的智慧校园人脸识别和公路汽车检测...
成员变量在Java中的定义与使用
成员变量在Java中的定义与使用 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在本文中,我们将详细探讨Java中的成员变量,包括其定义、使用以及各种类型的成员变量示例。 成员…...

Python开发工具PyCharm入门指南 - 用户界面主题更改
JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。 界面主题定义了窗口、对话框、按钮和用户界面的所有可视元素的外观…...
TCP网络套接字
一、创建套接字 #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); 参数: domain:指定使用的协议族。常见的取值有AF_INET(IPv4)和AF_INET6(IPv6&a…...

Element学习(axios异步加载数据、案例操作)(5)
1、这次学习的是上次还未完成好的恶element案例,对列表数据的异步加载,并渲染展示。 ——>axios来发送异步请求 (1) (2)在vue当中安装axios (注意在当前的项目目录,并且安装完之后…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...

uni-app学习笔记三十五--扩展组件的安装和使用
由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…...

链式法则中 复合函数的推导路径 多变量“信息传递路径”
非常好,我们将之前关于偏导数链式法则中不能“约掉”偏导符号的问题,统一使用 二重复合函数: z f ( u ( x , y ) , v ( x , y ) ) \boxed{z f(u(x,y),\ v(x,y))} zf(u(x,y), v(x,y)) 来全面说明。我们会展示其全微分形式(偏导…...

欢乐熊大话蓝牙知识17:多连接 BLE 怎么设计服务不会乱?分层思维来救场!
多连接 BLE 怎么设计服务不会乱?分层思维来救场! 作者按: 你是不是也遇到过 BLE 多连接时,调试现场像网吧“掉线风暴”? 温度传感器连上了,心率带丢了;一边 OTA 更新,一边通知卡壳。…...