JVM新生代和老生代比例如何设置?

一、查看启动时显式参数

  1. jps -v
    • 功能:列出所有Java进程及其显式传递的JVM参数(如-Xmx、-XX:+UseG1GC)。

    • 示例:

      bash 复制代码
      jps -v
      输出示例:23864 common-mistakes-0.0.1-SNAPSHOT.jar -Xms1g -Xmx1g

      说明:适用于快速查看进程启动时指定的参数。

  2. ps -ef | grep java
    • 功能:通过系统进程查看命令行中显式设置的JVM参数(需在CMD列中识别)。

    • 示例:

      bash 复制代码
      ps -ef | grep java
      输出示例:java -Xms1g -Xmx1g -jar app.jar

      适用场景:容器或非JDK环境下的参数查看。


二、查看所有默认参数(含隐式参数)

  1. java -XX:+PrintFlagsFinal -version
    • 功能:打印JVM所有参数的最终值(包括默认值和用户修改后的值)。

    • 输出格式:

      • name = value:未修改的默认值。
      • name := value:被修改后的值。
    • 示例:

      bash 复制代码
      java -XX:+PrintFlagsFinal -version > flags.txt
      查看堆内存参数:grep -i heap flags.txt

      关键参数 :MaxHeapSize(最大堆)、InitialHeapSize(初始堆)、MetaspaceSize(元空间)。

  2. -XX:+PrintCommandLineFlags
    • 功能:仅打印启动时显式和隐式设置的参数(如-XX:InitialHeapSize)。

    • 示例:

      bash 复制代码
      java -XX:+PrintCommandLineFlags -version
      输出示例:-XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648
      ```。

三、实时查看运行中JVM参数

  1. jinfo

    • 查看单个参数:

      bash 复制代码
      jinfo -flag  
      示例:查看最大堆大小
      jinfo -flag MaxHeapSize 12345

      输出 :-XX:MaxHeapSize=4294967296。

    • 查看所有参数:

      bash 复制代码
      jinfo -flags 
      输出所有JVM参数(含默认值和修改值)
      ```。
  2. jmap -heap

    • 功能:查看堆内存配置及GC信息(如堆大小、新生代比例)。

    • 示例:

      bash 复制代码
      jmap -heap 
      输出示例:Heap Configuration: NewSize=20.0MB, MaxHeapSize=4096.0MB
      ```。

四、容器环境中的参数查看

  1. Docker容器
    • 进入容器后使用jcmd:

      bash 复制代码
      docker exec -it  sh
      jcmd  VM.flags
      输出所有JVM参数(如-XX:MaxGCPauseMillis=200)
      ```。  
    • 注意:需确保容器内安装JDK工具链。


五、其他辅助工具

  1. VisualVM
    • 功能:图形化查看JVM参数、堆内存、线程状态等(需JDK 6+)。
    • 操作:启动后双击目标进程,进入"概述"标签页查看参数。
  2. JConsole
    • 功能:监控JVM运行时参数及性能指标(需启用JMX)。
    • 启动:jconsole。

总结

场景 推荐命令 输出内容
查看显式启动参数 jps -v 或 `ps -ef grep java`
查看所有参数(含默认) java -XX:+PrintFlagsFinal 参数键值对(含修改标记)
实时动态参数 jinfo -flags 运行中参数值
容器环境 docker exec ... jcmd VM.flags 容器内JVM参数

注意:生产环境建议结合监控工具(如Prometheus+Grafana)持续跟踪参数变化。

相关推荐
zjxtxdy1 分钟前
R语言数据统计入门
开发语言·r语言
m4Rk_4 分钟前
【论文阅读】Agent 记忆机制(97):MCMA——让 Agent 学会如何抽象记忆,实现跨任务经验迁移
论文阅读·人工智能·学习·开源·github
晓德6 分钟前
7、LLM 模型是怎么训练生成的?(4)指令微调
人工智能·学习·算法·信息安全
ljt27249606617 分钟前
Vue笔记(十三)--mixin
vue.js·笔记
汤姆yu9 分钟前
基于springboot+vue的企业OA办公系统
java·spring boot·后端·oa办公
问天_观心11 分钟前
Mistral-7B QLoRA 实战(二):官方权重转换、4-bit NF4 加载与 Base Model 基线测试
人工智能·深度学习·学习·大模型·transformer
南归北隐13 分钟前
Spring AI Alibaba Graph框架实现RAG私有知识库问答
java·后端·spring·spring ai·java rag实现
cleble15 分钟前
怎么用用 PowerShell 下载文件
开发语言·php
启观川19 分钟前
数据结构与算法 -第 3 章 常用算法-回溯算法
数据结构·笔记·python·算法
andrsted19 分钟前
练题簿在线免费刷题:选择、填空、简答与排序,多种题型练出不同的掌握程度
学习·微信小程序·小程序·学习方法·刷题