jvm运行情况预估

news/2024/11/27 23:56:42/

        相关系统

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.ppmy.cn/news/1418620.html

相关文章

软件设计模式之解释器模式

一、引言 在软件设计中,我们经常遇到需要“解释”和执行某种特定语法或语言的情况。这时,解释器模式就派上了用场。解释器模式(Interpreter Pattern)是一种行为设计模式,它提供了一种解释语言的语法并定义一个句子如何…

Golang 为什么要使用接口

接口的存在本质上是为了抽象化,这里理解的重点是: 一个类型如果拥有一个接口需要的所有方法,那么这个类型就实现了这个接口 这说明接口一个很重要的特点就是抽象,把不同类型的相同特点进行抽象统一。 下面举一个例子&#xff0…

c语言 通讯录项目的实现——有全代码!!!

1.通讯人数据的导入和存储 我们希望联系人的数据可以长久的保留那么我们可以通过文件操作去保存我们联系人的数据到文件中,创建一个储存联系人数据的文件:contacts.txt , 通过这个文件我们将保存联系人数据 文件的读取 我们将contacts.txt里的联系人数…

如何在SFTP工具中使用固定公网地址远程访问内网Termux系统

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问4. 配置固定远程连接地址 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFTP使用了…

数据库-Redis(8)

目录 36.可以每秒做一次RDB快照吗? 37.AOF是写前日志还是写后日志? 38.什么是AOF重写?

Java插值查找知识点(含面试大厂题和源码)

插值查找(Interpolation Search)是一种改进的二分查找算法,它适用于数据分布均匀的有序数组。插值查找的基本思想是,根据要查找的关键字与数组的最大值和最小值之间的比例,预测关键字可能存在的位置,从而跳…

VLC播放YUV视频文件

1.安装VLC并添加到环境变量 2.打开终端输入下列命令并执行: vlc --demux rawvideo --rawvid-fps 15 --rawvid-width 480 --rawvid-height 272 --rawvid-chroma I420 ./bigbuckbunny_480x272.yuv 3.播放效果: 4.

共享IP和独享IP如何选择,两者有何区别?

有跨境用户在选择共享IP和独享IP时会有疑问,不知道该如何进行选择,共享IP和独享IP各有其特点和应用场景,选择哪种方式主要取决于具体需求和预算。以下是对两者的详细比较: 首先两者的主要区别在于使用方式和安全性:共…