今天在JVMPocket群里面看见,阿牛发了一个gc截图,之后ak47截图了说特别恐怖,我就觉得好奇,去看看服务情况,截图日志如下

关于jstat命令详情可以参考:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

高手就是高手,就通过这个,直接提出1,就是达到old的92%的阈值了 不断做cms gc 2.估计是不断做system gc这些都是猜测,让执行

jstat -gccause pid 看看情况,为什么说要执行gccause呢?

尤其ygc没有,只有fgc,那gccause出来的一定就是我们想要的

如果有ygc,这个命令就不好用了,很容易吧我们想要的东西覆盖

看看jstat的说明

Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于Java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。

jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。参考格式如下:

jstat -options

可以列出当前JVM版本支持的选项,常见的有

  • l  class (类加载器)
  • l  compiler (JIT)
  • l  gc (GC堆状态)
  • l  gccapacity (各区大小)
  • l  gccause (最近一次GC统计和原因)
  • l  gcnew (新区统计)
  • l  gcnewcapacity (新区大小)
  • l  gcold (老区统计)
  • l  gcoldcapacity (老区大小)
  • l  gcpermcapacity (永久区大小)
  • l  gcutil (GC统计汇总)
  • l  printcompilation (HotSpot编译统计)

通过这个就排除了是执行system gc

在通过

jstat -gc pid 查看gc堆状态

看到这里大家应该都看出问题了,我靠什么情况,old512K

把jvm参数贴出:

-Xms2048m -Xmx5120m -XX:PermSize=4096M -XX:-HeapDumpOnOutOfMemoryError -XX:MaxNewSize=5120m -XX:MaxPermSize=3072m 

-Xmx5120m  MaxNewSize=5120m old就没有空间了

修改参数

-Xms5120m -Xmx5120m -XX:PermSize=128M -XX:MaxPermSize=512M -XX:-HeapDumpOnOutOfMemoryError -Xmn1512M

再观察情况,

jstat -gcutil pid 3s 30,看一下90s内ygc次数和ygct的时间变化

完美,一次0.005,才5ms

有个参数可以把ygc耗时花在哪里打出来

刚刚说的那个参数是:-XX:+PrintGCApplicationStoppedTime

该参数如何参考,查看呢? 在微信小程序里面搜索:JVMPocket,这个小程序是笨神大大提供的

结果如下:

万能的好工具!!!!

这几个参数建议也加上去

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/log/gclog/ -Xloggc:/data/log/gclog/gc.log -XX:+UseConcMarkSweepGC -XX:+UseParNewGC  -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly

显示申明cms+ParNew,设定old区75%时就回收

但是应用启动前需要提前创建目录/data/log/gclog/

参数不明白啥意思 去搜索微信小程序

最后感谢笨神,感谢阿飞!

一次与笨神,阿飞近距离接触修改JVM相关推荐

  1. 这可能是你与 AI 大神们近距离接触的唯一机会……

    明人不说暗话: 作为粤海街头放飞梦想的有志青年,他们可能是国内最大胆的「狗仔队」. 从2016年成立至今,他们报道过: 国内外数十场 AI 学术会议动态,写下老中青研究者们在会场前线的精神风采 AI ...

  2. 工业组态领头羊--组态王开始涉足.net程序开发(与林伟先生一次近距离接触)...

    最近为了推广我们的嵌入式设备,决定和组态王进行深层次的合作,昨天林伟先生一行人来到我们公司进行相关合作商谈,我有幸参与其中与林伟先生有了近距离接触的机会. 在我们总经理介绍我的时候,林总说好像见过我, ...

  3. Spring MVC各组件近距离接触--下下--05

    Spring MVC各组件近距离接触--下下--05 各司其职的View View实现原理回顾 可用的View实现类 AbstractUrlBasedView 1.使用JSP技术的view实现 2.使 ...

  4. 漂洋过海,与Splunk第一次近距离接触!

    第一次听说Splunk,源于几年前的一次采访,被采访的创业公司对标的就是Splunk,并要做中国的Splunk.如今,几年过去了,国内外对标Splunk的企业越来越多. 这让我不得不去关注Splunk ...

  5. [转]为什么你需要近距离接触Rust 1.0

    为什么你需要近距离接触Rust 1.0 经过几年的迭代改进,Rust编程语言日前发布1.0版本.作为一种现代系统语言,Rust从大量语言(如C/C++)中取其精髓,去其糟粕,同时具备底层控制.高性能和 ...

  6. 首次开放测试TCL QUHD让外界近距离接触量子点技术

    随着电视行业的迅猛发展,近年来,黑科技层出不穷,比如在显示技术方面,随着TCL QUHD量子点电视的推出,业界认为,未来量子点技术有望彻底革新电视产品,不过,由于消费者对这类技术缺乏足够的了解,所以厂 ...

  7. 原神服务端建模修改模型贴图(SpecialK)教程

    原神服务端建模修改模型贴图(SpecialK)教程 我是艾西,今天跟大家闲聊一下原神建模修改模型等.在一个游戏里开发者会按照自己这个游戏的大方向去运营,而总是有一些小伙伴有不一样的需求,如果是建模拥有 ...

  8. 报名 | 想在硅谷近距离接触蚂蚁金服的CTO和一众技术高管?这个机会一定不能错过!...

    ​想了解蚂蚁金服?想和蚂蚁金服成为合作伙伴?想在蚂蚁金服找到工作?来这场大会就对了! 去年,包含支付宝业务的蚂蚁金服完成了 45 亿美元融资,创造了当时全球互联网行业单笔私募融资的记录,也成为了全球估 ...

  9. 【多图】近距离接触甲骨文总裁马克赫德,Oracle在上海香格里拉酒店数据中心优化专题研讨会...

    今天有闲去了甲骨文在上海陆家嘴香格里拉酒店举办的<优化数据中心>研讨会, 近距离一睹了Oracle总裁马克赫德(Mark Hurd)的风采, 总体来说台上的赫德还是比较洒脱和萌的:)   ...

最新文章

  1. mysql explain 解释
  2. 顶会快讯|5篇AAAI2020相关论文抢先看(附GitHub代码地址)
  3. 如何去除Eclipse Maven插件里关于Managed version的警告消息
  4. java程序一写文件就崩溃_为什么直接修改java的.class文件会导致程序崩溃
  5. mysql have_mysql having的用法
  6. 【安全】Ceotos 7.5.1804 安装openldap 2.4.44
  7. 【紫书】(UVa12096) The SetStack Computer
  8. 转:Python网页解析:BeautifulSoup vs lxml.html
  9. Java实现坦克大战(源码全)
  10. PB通过VDN实现Http上传、下载
  11. 一些常用外设DHT11,sg90
  12. 思维导图----百度百科
  13. 常用地图投影转换公式 (转载)
  14. Android Studio中如何将ijkplayer 0.6.3导入自己的项目中并使用
  15. 6.计算机系统能力创新实践,计算机考核要重实践能力、培养创新精神
  16. diskgenius系统迁移_手把手教你如何优化windows7操作系统
  17. java base64转图片
  18. 吾父马达加斯加之旅-1
  19. 漂亮实用的后台网站大全
  20. Nginx中请求大小的限制的设置

热门文章

  1. 正点原子OLED显示实验
  2. 贪心的奇巧淫技-Join the Strings
  3. 将边缘云装进胶囊数据中心需要几步?
  4. 全国计算机二级编程题100道,计算机二级C语言100道编程题
  5. 这一篇对项目的优化实战,能让你面试加分30%
  6. 《NLTK基础教程》读书笔记 006期
  7. python反恐精英基础版_python反恐精英
  8. 设计模式之策略+工厂实现支付功能代码优化
  9. 几分钟内上线一个网站,这些神器我爱了!
  10. 来淄博旅游 2055