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

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

一、查看启动时显式参数

  1. jps -v
    • 功能:列出所有Java进程及其显式传递的JVM参数(如-Xmx-XX:+UseG1GC)。
    • 示例:
      jps -v
      输出示例:23864 common-mistakes-0.0.1-SNAPSHOT.jar -Xms1g -Xmx1g
      
      说明:适用于快速查看进程启动时指定的参数。
  2. ps -ef | grep java
    • 功能:通过系统进程查看命令行中显式设置的JVM参数(需在CMD列中识别)。
    • 示例:
      ps -ef | grep java
      输出示例:java -Xms1g -Xmx1g -jar app.jar
      
      适用场景:容器或非JDK环境下的参数查看。

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

  1. java -XX:+PrintFlagsFinal -version
    • 功能:打印JVM所有参数的最终值(包括默认值和用户修改后的值)。
    • 输出格式:
      • name = value:未修改的默认值。
      • name := value:被修改后的值。
    • 示例:
      java -XX:+PrintFlagsFinal -version > flags.txt
      查看堆内存参数:grep -i heap flags.txt
      
      关键参数MaxHeapSize(最大堆)、InitialHeapSize(初始堆)、MetaspaceSize(元空间)。
  2. -XX:+PrintCommandLineFlags
    • 功能:仅打印启动时显式和隐式设置的参数(如-XX:InitialHeapSize)。
    • 示例:
      java -XX:+PrintCommandLineFlags -version
      输出示例:-XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648
      ```。
      

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

  1. jinfo
    • 查看单个参数:
      jinfo -flag  
      示例:查看最大堆大小
      jinfo -flag MaxHeapSize 12345
      
      输出-XX:MaxHeapSize=4294967296
    • 查看所有参数:
      jinfo -flags 
      输出所有JVM参数(含默认值和修改值)
      ```。
      
  2. jmap -heap
    • 功能:查看堆内存配置及GC信息(如堆大小、新生代比例)。
    • 示例:
      jmap -heap 
      输出示例:Heap Configuration: NewSize=20.0MB, MaxHeapSize=4096.0MB
      ```。
      

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

  1. Docker容器
    • 进入容器后使用jcmd
      docker exec -it  sh
      jcmd  VM.flags
      输出所有JVM参数(如-XX:MaxGCPauseMillis=200)
      ```。  
      
    • 注意:需确保容器内安装JDK工具链。

五、其他辅助工具

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

总结

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

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

http://www.xdnf.cn/news/20261.html

相关文章:

  • Vue 3 项目中引入 Iconify
  • Spring Boot 和 Spring Cloud: 区别与联系
  • Oracle到ClickHouse:异构数据库ETL的坑与解法
  • HTML 各种事件的使用说明书
  • Spring Boot AOP:优雅解耦业务与非业务逻辑的利器
  • 如何将 Android 设备的系统底层日志(如内核日志、系统服务日志等)拷贝到 Windows 本地
  • WeaveFox AI智能开发平台介绍
  • Docker部署Drawnix开源白板工具
  • 【RelayMQ】基于 Java 实现轻量级消息队列(六)
  • React Fiber 风格任务调度库
  • 2025Android开发面试题
  • 目标检测双雄:一阶段与二阶段检测器全解析
  • Nextcloud 实战:打造属于你的私有云与在线协作平台
  • Oracle 数据库:视图与索引
  • 没 iCloud, 如何数据从iPhone转移到iPhone
  • ZooKeeper架构深度解析:分布式协调服务的核心设计与实现
  • Conda环境隔离和PyCharm配置,完美同时运行PaddlePaddle和PyTorch
  • 机器学习(七)决策树-分类
  • [论文阅读] 人工智能 + 软件工程 | 当ISO 26262遇上AI:电动车安全标准的新玩法
  • 中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
  • 乐观并发: TCP 与编程实践
  • 华锐视点VR风电场培训课件:多模块全面覆盖风机知识与操作​
  • UniApp 页面通讯方案全解析:从 API 到状态管理的最佳实践
  • 【Docker-Day 24】K8s网络解密:深入NodePort与LoadBalancer,让你的应用走出集群
  • B 题 碳化硅外延层厚度的确定
  • 【Linux学习笔记】信号的深入理解之软件条件产生信号
  • Docker在Windows与Linux系统安装的一体化教学设计
  • AI 基础设施新范式,百度百舸 5.0 技术深度解析
  • 【AI编程工具】快速搭建图书管理系统
  • 9.5 递归函数+常见算法