学习剑指jvm

news/2024/11/26 1:48:37/

一直弱,jvm

1、主要解决运行状态的线上系统突然卡死,造成系统无法访问,甚至直接内存溢出异常(Out of Memory,OOM)

2、希望解决线上JVM垃圾回收的相关问题,但无从下手。

3、新项目上线,对设置jvm参数设置一脸茫然,最后系统宕机。

虚拟机与JVM:

jvm是一台执行jvm字节码的虚拟计算机,它拥有独立的运行机制,其运行的jvm字节码也必由java编译而成。各种语言可以共享jvm带来的扩

JVM性能调优的目标就是减少gc的频率和Full gc的次数,使用较少的内存用来获得较高的吞吐量或较低的延迟。
内存占用:程序正常运行时需要的内存大小。
延迟:由于垃圾收集而引起的程序停顿时间。
吞吐量:用户程序运行时间占用户程序和垃圾收集占用总时间比值,

当然,调优时所考虑的方向也不同,在调优之前,必须要结合场景,有明确的优化目录,找到性能瓶颈,对瓶颈的有针对性的优化,最后测试优化后的结果,通过各种监控工具确认调优后的结果是否符合目标。

我们很多时间讲到了增加内存可以提高系统的性能而且效果显著,那么随之带来的一个问题就是,增加多少内存比较合适,那么产生full gcr 时间,gc时间会相对较长。
如果内存较小,就会频繁的gc ,这种情况下,我们该如何配置堆内存大小呢?
公式的意思是java中整个堆大小设置原则是xmx和xms设置老年代存活对象的3~4倍,即full gc 后堆内存是老年代的3-4倍。
方法区:永久代permsize和maxpermsize设置为老年代存活对象的1.2~1.5倍,新生代xmn的设置为 


使用如下命令将当前的存活对象dump 到文件,此时会触发full gc 
jmap -dump:live,format=b,file=heap.bin <pid>

使用如下命令打印每个class的实例数目,内存占用和类全名信息,此时会触发full gc 
jmap -histo:live <pid>

在性能测试环境,可以通过java监控工具来触发full gc,比如使用visualvm 和 jconsole,这些工具在最新的bin目录下面可以找到,visualvm或者jconsole上面有一个触发gc的按钮。

最开始的可以将内存设置得大一些,如果设置为4GB,当然可以根据业务系统评估算,比如数据库获取一条数据占用128字节,每次需要获取1000条数据,那么读内内存大小就是(128/1024/1024)*1000=0.122MB
如果内存设置为1GB,新生代大小约就是333MB,那么333/12=27.75s就会把新生代内存填满。
就会把新生代内存填满,


用来查看:具体的内存使用情况

sudo -u hdfs jmap -heap 49


http://www.ppmy.cn/news/1192497.html

相关文章

护航数据安全|安全狗亮相厦门市工信领域数据安全宣贯培训会

10月31日&#xff0c;厦门市工业和信息化局&#xff08;市大数据管理局&#xff09;顺利举办厦门市工信领域数据安全宣贯培训。 作为国内云原生安全领导厂商&#xff0c;安全狗以厦门市工业领域数据安全管理支撑单位身份受邀出席此次会议。 厦门服云信息科技有限公司&#xff0…

【Vue】vant上传封装方法,van-uploader上传接口封装

项目场景&#xff1a; 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 在移动端项目中&#xff0c;使用vant组件上传&#xff0c;但是vant没有上传方法&#xff0c;需要自己写。 html代码 <van-uploader v-model"fileList" :max-size"50…

android studio app红叉无法编译

1.起源 今天前台小姐姐穿了一个白色的超短裙,和小姐姐聊了聊人生梦想,聊生活趣事,回到工位你马....报了一个这错误,无法运行了,明天就要打包测试了,顿时菊花一紧,急了一头汗,这你马咋回事,看了旁边的产品肥仔,迷着小眼露出了银建的笑容.开始排雷.... 意思就是说gradle初始化失…

【计算机网络】应用层——HTTPS协议

目录 HTTPS协议加密对称加密非对称加密 数据摘要&#xff08;数据指纹&#xff09;HTTPS安全问题对称加密非对称加密 证书客户端认证查看客户端证书 解决数据安全问题&#xff08;引入证书&#xff09; HTTPS协议 HTTP 协议内容都是按照⽂本的⽅式明⽂传输的. 这就导致在传输过…

Excel自学三部曲_Part3:Excel工作场景实战(三)

文章目录 三、基础图表、透视图表制作与分析1. 条形图&#xff08;1&#xff09;给逾期金额加上条形图&#xff08;2&#xff09;各个城市的逾期发展趋势&#xff08;迷你图&#xff09; 2. 柱状图&#xff08;1&#xff09;同时展示每个城市上中下旬的逾期金额a. 格式设置&…

[题] 首字母变大写 #字符输入

题目&#xff1a;1382: 首字母变大写 输入一个英文句子&#xff0c;将每个单词的第一个字母改成大写字母。 输入 输入数据包含多个测试实例&#xff0c;每个测试实例是一个长度不超过100的英文句子&#xff0c;占一行。输出 请输出按照要求改写后的英文句子。 样例输入 i like …

机器学习之IV编码,分箱WOE编码

IV的概念与作用 全称是Information Value&#xff0c;中文的意思是信息价值&#xff0c;或者信息量作用&#xff1a; 1、构建分类模型时&#xff0c;经常需要对特征进行筛选。 2、挑选特征的过程考虑的因素比较多&#xff0c;最主要和最直接的衡量标准是特征的预测能力&#…

oracle查询哪些用户下有表

oracle查询哪些用户下有表,排除系统用户。 在实际业务中 oracle数据库中创建了很多的用户 但实际都是无表的,利用SQL语句将这些有表的用户查询出来 并显示用户名、表名、创建表的时间等信息。 select * from dba_objects where object_type = TABLE and owner not in ( AN…