当前位置: 首页 > news >正文

JVM参数调整

一、内存相关参数

1. 堆内存控制
  • -Xmx:最大堆内存(如 -Xmx4g,默认物理内存1/4)。
  • -Xms:初始堆内存(建议与-Xmx相等,避免动态扩容带来的性能波动)。
  • -Xmn:新生代大小(如 -Xmn2g,需权衡老年代空间)。
  • -XX:NewRatio:老年代与新生代的比例(如 -XX:NewRatio=2 表示老年代是新生代的2倍)。
  • -XX:SurvivorRatio:Eden区与Survivor区的比例(如 -XX:SurvivorRatio=8 表示Eden:S0:S1=8:1:1)。
2. 元空间(方法区)
  • -XX:MetaspaceSize:初始元空间大小(默认约21M)。
  • -XX:MaxMetaspaceSize:最大元空间大小(防止无限膨胀,如 -XX:MaxMetaspaceSize=256m)。
3. 直接内存(堆外内存)
  • -XX:MaxDirectMemorySize:限制NIO直接内存(如 -XX:MaxDirectMemorySize=512m)。

二、垃圾回收器(GC)相关

1. 指定GC算法
  • -XX:+UseSerialGC:串行回收器(单线程,适合客户端应用)。
  • -XX:+UseParallelGC:并行回收器(多线程,吞吐量优先)。
  • -XX:+UseConcMarkSweepGC:CMS回收器(低延迟,JDK8及之前)。
  • -XX:+UseG1GC:G1回收器(平衡吞吐与延迟,JDK9+默认)。
  • -XX:+UseZGC:ZGC(超低延迟,JDK11+)。
  • -XX:+UseShenandoahGC:Shenandoah(低延迟,RedHat贡献)。
2. GC调优参数
  • -XX:MaxGCPauseMillis:目标最大GC停顿时间(G1默认200ms,如 -XX:MaxGCPauseMillis=100)。
  • -XX:G1HeapRegionSize:G1的Region大小(如 -XX:G1HeapRegionSize=4m)。
  • -XX:ParallelGCThreads:并行GC线程数(默认CPU核数)。
  • -XX:InitiatingHeapOccupancyPercent:G1触发并发周期的堆占用阈值(默认45%)。
3. GC日志与分析
  • -Xloggc:<file>:输出GC日志到文件。
  • -XX:+PrintGCDetails:打印详细GC信息。
  • -XX:+PrintGCDateStamps:显示GC发生的时间戳。
  • -XX:+UseGCLogFileRotation:GC日志轮转(配合-XX:NumberOfGCLogFiles=5-XX:GCLogFileSize=10M)。

三、故障诊断与监控

1. 内存溢出(OOM)处理
  • -XX:+HeapDumpOnOutOfMemoryError:OOM时生成堆快照。
  • -XX:HeapDumpPath=<path>:指定堆快照保存路径。
2. 类加载监控
  • -XX:+TraceClassLoading:跟踪类加载过程。
  • -XX:+TraceClassUnloading:跟踪类卸载过程。
3. 调试参数
  • -XX:NativeMemoryTracking=summary:监控堆外内存使用(通过jcmd <pid> VM.native_memory detail查看)。
  • -XX:+PrintFlagsFinal:查看所有JVM参数的最终值。

四、其他优化参数

1. JIT编译器
  • -XX:+TieredCompilation:分层编译(JDK8默认开启)。
  • -XX:CompileThreshold:触发JIT编译的方法调用阈值。
2. 线程控制
  • -Xss:线程栈大小(如 -Xss256k,默认1M)。
3. 禁用显式GC
  • -XX:+DisableExplicitGC:禁用System.gc()调用(注意可能影响NIO直接内存回收)。

五、生产环境典型配置示例

# 堆内存与GC(G1)
-Xmx4g -Xms4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 

# 元空间限制与OOM诊断
-XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs

# GC日志
-Xloggc:/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps 

六、回答模板

  1. 分类说明:先按内存、GC、监控等模块分类,避免遗漏。
  2. 核心参数:重点说明-Xmx-Xms-XX:+UseG1GC等高频参数。
  3. 场景结合:例如“高吞吐场景用ParallelGC,低延迟用G1/ZGC”。
  4. 调优原则:强调参数调整前需通过日志(如GC日志)和工具(如jstat、MAT)定位问题。

相关文章:

  • SAP的错误:General error 339 invalid number
  • 文献学习——考虑混合储能系统选择的基于改进蜂群算法的热电联产微网多目标经济优化调度
  • 攻防世界WEB(新手模式)19-file_include
  • Hadoop、Hive、Spark的关系
  • 盛铂科技 SLMF315频率综合器200MHz至15GHz 国产频综模块
  • 2024华为OD机试真题-磁盘容量排序算法(C++)-E卷B卷-100分
  • linux 使用阿里云盘 阿里网盘
  • 我的两个医学数据分析技术思路
  • UI自动化:利用百度ocr识别解决图形验证码登录问题
  • 实验一:在Windows 10/11下配置和管理TCP/IP
  • 【0012】Python函数详解
  • 深入理解CAS与乐观锁:Java高并发编程实战指南
  • 2021年高教社杯全国大学生数学建模A题——基于几何模型的“FAST”主动反射面的形状调节
  • ORB-SLAM2源码学习(六):相机跟踪(局部地图跟踪和关键帧创建)
  • 快捷键输出 打开 特定文件夹+资源管理器
  • AI-Ollama使用llama模型vue2中流式响应,模仿AI提问逐字渲染,呈现打印机效果
  • C++ 重载运算符
  • 工程化与框架系列(21)--前端性能优化
  • 【高分论文密码】AI大模型和R语言的全类型科研图形绘制,从画图、标注、改图、美化、组合、排序分解科研绘图每个步骤
  • 子数组问题——动态规划
  • 做网站万网/西地那非片多少钱一盒
  • wordpress做商城/柏乡seo快排优化
  • 网站开发后台 amp/网络营销学什么
  • 怎样建设网站客服服务器/学大教育培训机构电话
  • 那些开店的网站是自己做的吗/南京seo网站优化
  • 政府单位建设网站的申请报告/推广方案策略怎么写