此页面是否是列表页或首页?未找到合适正文内容。

Hi ! 我是小小,今天是本周的最后一篇,本篇将会着重讲解关于 JVM 调优和性能监控方面的内容

常用工具

常用工具主要有 JDK 自带工具与 Arthas 这两种工具。

JDK 自带工具

jps 虚拟机进程状况工具

用于查看虚拟机进程状况的工具 命令示例

$ jps
15236 Jps
14966 Example1

jstat 虚拟机统计信息监视工具

用于查看虚拟机的堆内存,内存信息,类的装载和卸载信息等内容

显示堆内存信息

jstat -gc 14966S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
2048.0 2048.0  0.0    0.0   12800.0   9345.8   34304.0    26638.8   5248.0 4971.3 640.0  554.9       2    0.032   2      0.049    0.082

每隔 1000 毫秒打印堆内存信息,打印十次

查看类的装载和卸载信息

$ jstat -class 14966
Loaded  Bytes  Unloaded  Bytes     Time829  1604.4        0     0.0       0.37

Java 配置信息工具

查看JVM的启动参数

$ jinfo -flags 26472
VM Flags:
-XX:CICompilerCount=3 -XX:InitialHeapSize=52428800 -XX:MaxHeapSize=52428800 -XX:MaxNewSize=17301504 -XX:MinHeapDeltaBytes=524288 -XX:New

jstack Java 堆栈跟踪工具

即,对当前的内存生成相关的快照,用于保存相关的快照信息。

jmap Kava 内存映射工具

用于查看内存对象数量和内存空间占用

jhat 生成 html 类型的快照文件

$ jhat dump.hprof
Reading from dump.hprof...
Dump file created Sun May 03 17:09:07 CST 2020
Snapshot read, resolving...
Resolving 42293 objects...
Chasing references, expect 8 dots........
Eliminating duplicate references........
Snapshot resolved.
Started HTTP server on port 7000
Server is ready

启动后,在浏览器打开,http://localhost:7000/

jvisualvm & VisualVM: 堆转储快照分析工具

和上方命令一样,直接导出文件,而不是网站对象信息线程信息

jconsole: JVM 性能监控

启动用户界面用于进行性能监控启动成功以后

Arthas

阿里开源的Java诊断工具

安装

下载

wget https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar

解压

unzip arthas-packaging-bin.zip

安装

sudo su adminrm -rf /home/admin/.arthas/lib/*cd arthas./

启动

./as.sh

help

dashboard ?实时数据面板

thread 线程信息

jad 反编译类

watch 数据观测

调优

部署方式

服务器经常出现卡顿

这是由于 Full GC 时间过长导致,原因一般是

  1. 新生代太小,对象提前进入老年代,触发 Full GC

  2. 老年代较大,一次 Full GC 时间较长

解决方案是 调小 NewRatio 的值,尽可能的减少对象进入老年代

调整内存占用

直接内存

调整 XX:MaxDirectMemorySize 避免发生 ? OutOfMemoryError: Direct buffer memory

线程堆栈

调整 -Xss 避免发生 StackOverflowError 或 OutOfMemoryError: unable to create new native thread

从 GC 角度解决新生代大量对象存活,Minor GC 时间过长

参数调整

-XX:SurvivorRatio=65536
-XX:MaxTenuringThreshold=0
-XX:AlwaysTenure

关于作者

我是小小,生于二线,活在一线的程序猿,我是小小,我们下期再见。

小明菜市场

推荐阅读

●?没想到 | 万万没想到 Java 中最重要的关键字竟然是这个

●?3W | 跟着小小学会这些 Java 工程师面试题,月薪至少 3 W

●?十年 | 在Java开发做了10年后,才学会此绝招,用于颠覆Java应用

●?DJL | DJL 如何正确打开 [ 深度学习 ]

●?警惕 | 警惕,mybatis的size()方法竟然有坑!

给我个好看再走好吗?

以上信息来源于网络,如有侵权,请联系站长删除。

TAG:调优

zip直链生成网站_调优-WEB资讯专栏-DMOZ中文网站分类目录相关推荐

  1. mysql触发器访问网站_MySQL触发器使用-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

    触发器:触发器的使用场景以及相应版本:触发器可以使用的MySQL版本:- 版本:MySQL5以上### 使用场景例子:1. 每当增加一个顾客到某个数据库表时,都检查其每当增加一个顾客到某个数据库表时, ...

  2. 什么叫基于web的网站_选择离开家乡在外打工,学门什么专业的技术更有前途呢?-WEB资讯专栏-DMOZ中文网站分类目录...

    ? 选择离开家乡在外打工 学门什么专业的技术更有前途呢 其实每个人都有自己的梦想 都有自己喜欢的生活方式 再说自己家里的土地不算多 所以靠天吃饭挺不容易的 必须要出去打工才能维持现状 一年一回打工之路 ...

  3. collection集合 厂家_一篇搞定Java集合类原理-WEB资讯专栏-DMOZ中文网站分类目录

    transient Object[] elementData; // non-private to simplify nested class access初始容量为10private static ...

  4. python作业网站_怒刷python作业-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

    以下作业题仅为参考答案 为了锻炼思维的目的 所有的底层操作都是独立实现 尽量少的引包 大家对题有更好的思路和更方便的包欢迎大家多多留言 祝愿大家共同进步1 hello word 略- 2A B A i ...

  5. 前端请求接口post_接口自动化测试-WEB资讯专栏-DMOZ中文网站分类目录

    为什么UI自动化维护成本更高?因为前端页面变化太快,而且UI自动化比较耗时(比如等待页面元素的加载.添加等待时间.定位元素.操作元素.模拟页面动作这些都需要时间)为什么接口自动化维护成本较低?因为接口 ...

  6. java 5%3_【Java】位操作符-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

    位运算符java支持的位运算符有7个,分为两类:位逻辑运算和移位运算.位逻辑运算符包括按位取反(~).按位与( ).按位或(|)和按位异或(^)4种,.移位运算符包括左移( ).右移( )和无符号右移 ...

  7. k8s ubuntu cni_K8S环境快速部署Kafka(K8S外部可访问)-WEB资讯专栏-DMOZ中文网站分类目录...

    欢迎访问我的GitHub内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等:如何快速部署借助Helm,只需少量操作 欢迎访问我的GitHub 内容: ...

  8. python资讯_python学习-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

    模块 module 是一个 Python 文件 以.py 结尾 包含了 Python 函数等语句.先导入 再使用 用模块.函数名调用. 例如1import time time.asctime ( ) ...

  9. php时间戳 中文,PHP时间戳-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....

    PHP时间戳UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00到当前时间的秒数之和.PHP提供了内置函数 time() 来 ...

最新文章

  1. VIM入门必读(转)
  2. Android中使用广播机制退出多个Activity
  3. LeetCode_每日一题今日份_312.戳气球(没懂)
  4. OpenGL mipmap filters贴图过滤的实例
  5. 平滑动画 每秒60帧 -- 16ms内绘完一帧
  6. Android用户界面程序设计示例
  7. 大曾幽默打油诗_这才是真正的幽默打油诗,逗人一笑,又引人深思!
  8. group by 的实现原理
  9. Linux创建anaconda-navigator快捷图标并固定在dock上
  10. php unix时间戳单位,PHP对于Unix时间戳的转换
  11. 人性的弱点 - 把握人际交往的关键
  12. 微信加人:你需要了解的规则
  13. pscp新机器提示Store key in cache? 重装后提示Update cached key?的解决方案
  14. 什么是EDM营销?EDM营销的优点是什么?
  15. 《JavaEE初阶》HTTP协议和HTTPS
  16. Oracle序列相关命令
  17. cucumber注解
  18. 坚持终生学习--芒格的13条人生建议
  19. 数据库系统工程师备考心得——30天一次拿下
  20. 用wegame启动lol显示服务器维护,wegame启动不了英雄联盟(wegame点启动又弹回界面)...

热门文章

  1. 『转】山世光导师致报考研究生的一封信
  2. 【教程】七天入门C#上位机目录
  3. 快排为什么一定要从右边开始?
  4. 二次元博客系统Halo
  5. x2000 ffmpeg avcodec_send_packet
  6. 1分钟7张图:后视镜判断车距,非常实用
  7. [随笔所想] 学英语打卡2000天碎碎念
  8. PostgreSQL单列多行变一行一行变多行
  9. 亚马逊站外引流 不花钱做流量
  10. 基于最小二乘法的磁力计椭球拟合方法