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

jvm运行情况预估

        相关系统

jvm优化原则-CSDN博客

 执行下面指令

jstat gc -pid

能计算出一些关键数据,有了这些数据,先给JVM参数一些的初始的,比堆内存大小、年轻代大小 、Eden和Srivivor的比例,老年代的大小,大对象的阈值,大龄对象进行老年代的阈值等。

年轻代增长速率

执行下面指令

jstat -gc pid 1000 10

通过观察EU(eden区的使用)来估算每秒eden大概新增多少对象,如果系统负载不高,可以把频率1秒换成1分钟,10分钟也是可以的具体看业务场景。注意,一般系统可能有高峰期和日常期,所以需要在不同的时间分别估算不同情况下对象增长速率。

Young GC的触发频率和每次耗时

依据年轻代增长速率就可以以eden区的大小推算出Minor GC需要多久时间触发,young GC平均耗时可以通过YGCT/YGC公式算出,根据结果就会计算出系统大概Young GC的执行而卡顿多久。

每次Young GC有多少对象进入老年代

依据前面推算出来的结果就知道Young GC频率,假设10分钟一次,可以执行jstat -PID 600000 10,观察eden区的变化,survivor区和老年代的变化情况,每次gc后eden区使用一般会大幅减少,survivor区和老年代都有可能增长,这些增长的对象就是每次Young GC后存活的对象,同时还可以看出每次Young GC后进行老年代大概多少对象,从而可以推算出老年代对象增长速度

Full GC的触发频率和每次耗时

前面已经推算出老年代对象的增长速度,接着就能推算出Full GC的触频率,Full GC的每次耗时用公司FGCT/FGC计算出来。

优化思路

让每次Young GC后的存活的对象小于Survivor区域的50%,都留存在年轻代中,尽量别让对象进行老年代。尽量减少Full GC的频率,避免频繁Full GC对JVM性能的影响。 

http://www.lryc.cn/news/335748.html

相关文章:

  • Day105:代码审计-PHP原生开发篇SQL注入数据库监控正则搜索文件定位静态分析
  • Python:如何对FY3D TSHS的数据集进行重投影并输出为TIFF文件以及批量镶嵌插值?
  • CentOS 镜像下载
  • yum和配置yum源
  • jQuery笔记 02
  • 基于Java+SpringBoot+Vue文学名著分享系统(源码+文档+部署+讲解)
  • C/S医学检验LIS实验室信息管理系统源码 医院LIS源码
  • liunx环境变量学习总结
  • 对于Redis,如何根据业务需求配置是否允许远程访问?
  • 深入分析Linux上下文与上下文切换
  • Docker快速上手及常用命令速查
  • 学习笔记:解决拖延
  • 第一个Swift程序
  • Anthropic Claude 3 加入亚马逊云科技 AI“全家桶”
  • 学习基于pytorch的VGG图像分类 day3
  • Spring Boot统一功能处理之拦截器
  • stm32之基本定时器的使用
  • 单片机为什么还在用C语言编程?
  • IO流的基础详解
  • 实战攻防 | 记一次项目上的任意文件下载
  • 熔断之神:探寻Hystrix的秘密与实践指南
  • Web功能测试测试点总结!
  • 关于vue3的简单学习
  • windows server 2019 -DNS服务器搭建
  • 使用 XCTest 进行 iOS UI 自动化测试
  • 【Python】FANUC机器人OPC UA通信并记录数据
  • Linux 中断处理
  • 人大金昌netcore适配,调用oracle模式下存储过程\包,返回参数游标
  • pandas常用的一些操作
  • 【鸿蒙开发】系统组件Row