首页 > 其他分享 >JVM 调优总结

JVM 调优总结

时间:2022-12-09 12:05:00浏览次数:52  
标签:总结 logging launcher Djava hotspot XX 调优 JVM home


  1.通过调整堆中新生代和幸存代大小,避免因为幸存代不足而让Minor GC后的对象进入老年代。每次Minor GC都有对象进入老年代会造成数次MinorGC后FullGC.

  2.减少永久区浪费,JVM进程启动完毕后,永久区变化不大了,这时可以参看Perm是否有剩余空间,节省Perm区的空间分给新生代用。

缩短单次MinorGC所用时间:选择合理的GC算法,并进行GC算法参数调整。比如 低交互性可使用Parallel Scavenge(这种不会尽可能缩短GC时间)

 

1.tomcat调优

(1) 查看gc统计结果


[hotspot@bogon ~]$ jstat -gcutil 3553 | column -t
S0 S1 E O P YGC YGCT FGC FGCT GCT
10.28 0.00 90.07 91.12 51.75 838 60.922 1 1.728 62.650


从结果看出,虽然经历了838次MinorGC,但仅发生了1次 FullGC,成功避免了FullGC

(2)查看JVM参数


[hotspot@bogon ~]$ jinfo -flags 3553
Attaching to process ID 3553, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 23.5-b02

-Djava.util.logging.config.file=/home/hotspot/tomcat7_8082/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms500m -Xmx800m -XX:PermSize=256M -XX:MaxPermSize=300M \
-Djava.endorsed.dirs=/home/hotspot/tomcat7_8082/endorsed -Dcatalina.base=/home/hotspot/tomcat7_8082 -Dcatalina.home=/home/hotspot/tomcat7_8082 -Djava.io.tmpdir=/home/hotspot/tomcat7_8082/temp


 2.tomcat调优


[hotspot@bogon ~]$ jinfo -flags 25493
Attaching to process ID 25493, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 23.5-b02

-Djava.util.logging.config.file=/home/hotspot/tomcat7b/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-XX:+UseG1GC -XX:+UnlockCommercialFeatures -Xms800m -Xmx800m -XX:MaxTenuringThreshold=12 -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:SurvivorRatio=6 -XX:PermSize=250M -XX:MaxPermSize=400M \
-Djava.rmi.server.hostname=172.16.11.52 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9110 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false \
-Djava.endorsed.dirs=/home/hotspot/tomcat7b/endorsed -Dcatalina.base=/home/hotspot/tomcat7b -Dcatalina.home=/home/hotspot/tomcat7b -Djava.io.tmpdir=/home/hotspot/tomcat7b/temp
[hotspot@bogon ~]$ jstat -gcutil 25493 5s 1
S0 S1 E O P YGC YGCT FGC FGCT GCT
0.00 100.00 4.96 54.33 69.55 1166 247.260 0 0.000 247.260


从jstat的结果看出,FGC没有发生过。

3.ecilpse调优

jdk 1.7.0_17  | win10 64bit | cpu 3.0 | ram 8g | hd 1t 


-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20150204-1316
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
#### 该行以下为调优参数 ####
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+DisableExplicitGC
-Xmn550m
-XX:SurvivorRatio=6
-Xms1024m
-Xmx1024m
-XX:MaxPermSize=400m
-XX:PermSize=300M
-XX:MaxTenuringThreshold=12
-Declipse.p2.max.threads=20


-XX:+DisableExplicitGC : 禁止在程序在使用System.gc() 这个方法会引发FullGC,为了让关闭后的窗体不再占用堆内存, eclipse程序中自动调用了System.gc()

-XX:MaxTenuringThreshold=12:让需要进入老年代的对象尽快进入

调优结果:startup:6s loadup:12s openPomXml:3s

标签:总结,logging,launcher,Djava,hotspot,XX,调优,JVM,home
From: https://blog.51cto.com/u_15907520/5924545

相关文章

  • 6个方面,32条总结教你提升职场经验
      成长的捷径入职伊始谦逊的态度是好的,但不要把“我是新人”作为心理安全线;写一篇技术博客大概需要两周左右,但可能是最快的成长方式;一定要读两本书:金字塔原......
  • 【集成学习(上)】My_Task06_掌握分类问题的评估及超参数调优 笔记
    文章目录​​评估模型的性能并调参:​​​​当类别为两类时,可以绘制混淆矩阵与ROC曲线​​评估模型的性能并调参:更详细的可以查看大佬的知乎:https://zhuanlan.zhihu.com/p......
  • 六阶段:第35周 应用监控与调优-工具篇 skywalking
        插件识别api           ......
  • 6个方面,32条总结教你提升职场经验
      成长的捷径入职伊始谦逊的态度是好的,但不要把“我是新人”作为心理安全线;写一篇技术博客大概需要两周左右,但可能是最快的成长方式;一定要读两本书:金字塔原......
  • KingbaseES性能调优《索引优化建议》
    本文主要介绍KingbaseES使用插件(索引优化建议)进行数据库性能调优。一、插件sys_qualstats1、简介sys_qualstats是一个KingbaseES的扩展,用于保存WHERE语句和JOIN......
  • 今日总结
    域名备案真的麻烦死了,先要服务器提供商审核,再要公安备案,需要下载国务院应用实名认证,好了还要填好多表,头秃这个博客样式应该就是我的最终版本了,不会再搞了,平常就用它记录......
  • 2022.12.8 总结
    2022.12.8总结1.《代码随想录》二刷从中序与后序遍历序列构造二叉树:https://leetcode.cn/problems/construct-binary-tree-from-inorder-and-postorder-traversal/从......
  • JVM 逃逸分析 (史上最全)
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • Redis面试题总结(2022)
    1基本概念1.1常见考点1、Redis为何这么快?1)基于内存;2)单线程减少上下文切换,同时保证原子性;3)IO多路复用;4)高级数据结构(如SDS、Hash以及跳表等)。2、为何使用单线程?官方......
  • 并发编程总结
    ​​深入理解Java类型信息(Class对象)与反射机制​​​​深入理解Java枚举类型(enum)​​​​深入理解Java注解类型(@Annotation)​​​​深入理解Java类加载器(ClassLoader......