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

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://BRMJDJyE.jtsdk.cn
http://3fRJ5dLx.jtsdk.cn
http://Ev7jIfTn.jtsdk.cn
http://DQPuxrKh.jtsdk.cn
http://OZ3NZPrY.jtsdk.cn
http://7awqKLxX.jtsdk.cn
http://apHgVonx.jtsdk.cn
http://gJQQMbMD.jtsdk.cn
http://sP7vsVhS.jtsdk.cn
http://SNMUzpu9.jtsdk.cn
http://6daOyWhK.jtsdk.cn
http://mwpivkQC.jtsdk.cn
http://7gXJOoA6.jtsdk.cn
http://n6MR8czV.jtsdk.cn
http://sVQwgQs8.jtsdk.cn
http://TuBfg8Ke.jtsdk.cn
http://TzJ0Q2CX.jtsdk.cn
http://gwgS1NXu.jtsdk.cn
http://yFaCOAra.jtsdk.cn
http://iIUIom5F.jtsdk.cn
http://K6adqajf.jtsdk.cn
http://1e6Kh55M.jtsdk.cn
http://j4Ifeb5H.jtsdk.cn
http://GYnSl3zO.jtsdk.cn
http://cZoC6wwZ.jtsdk.cn
http://MNs7kUjq.jtsdk.cn
http://nKFmDFaU.jtsdk.cn
http://D1ImANRH.jtsdk.cn
http://hxErSiYG.jtsdk.cn
http://h2NRbpxa.jtsdk.cn
http://www.dtcms.com/a/368425.html

相关文章:

  • 基于OpenGL封装摄像机类:视图矩阵与透视矩阵的实现
  • MySQL 8.0.36 主从复制完整实验
  • 无需bootloader,BootROM -> Linux Kernel 启动模式
  • 【Vue3+TypeScript】H5项目实现企业微信OAuth2.0授权登录完整指南
  • 为什么MySQL可重复读级别不能完全避免幻读
  • Gradle Task 进阶:Task 依赖关系、输入输出、增量构建原理
  • 串口通信基础知识
  • webshell及冰蝎双击无法打开?
  • Doris 数据仓库例子
  • 从零构建企业级LLMOps平台:LMForge——支持多模型、可视化编排、知识库与安全审核的全栈解决方案
  • 如何根据Excel数据表生成多个合同、工作证、录取通知书等word文件?
  • Highcharts 数据源常见问题解析:连接方式、格式处理与性能优化指南
  • T06_RNN示例
  • 【Android】Room数据库的使用
  • CoolGuard风控系统配置评分卡、权重策略|QLExpress脚本
  • 【FastDDS】Layer Transport ( 02-Transport API )
  • 确保 SQL Server 备份安全有效的最佳实践
  • 盘点完今年CoRL最火的VLA论文,发现最强的机器人,竟是用“假数据”喂大的
  • 新闻丨重庆两江新区党工委副书记、管委会主任许宏球一行莅临华院计算考察指导
  • 基于YOLO目标检测模型的视频推理GUI工具
  • latex公式符号与字体
  • SQL Server事务隔离级别
  • SQL高效处理海量GPS轨迹数据:人员gps轨迹数据抽稀实战指南
  • 查询语言的进化:SQL之后,为什么是GQL?数据世界正在改变
  • 概念 | C标准库STL,C运行时库CRT
  • JAiRouter 配置文件重构纪实 ——基于单一职责原则的模块化拆分与内聚性提升
  • ZooKeeper架构深度解析:分布式协调服务的核心设计与实现
  • ResNet 迁移学习---加速深度学习模型训练
  • Django REST framework:SimpleRouter 使用指南
  • Vue3 频率范围输入失焦自动校验实现