作者:小明菜市场 2020-11-09 07:34:49
云计算
虚拟化 stat 虚拟机统计信息监视工具用于查看虚拟机的堆内存,内存信息,类的装载和卸载信息等内容。
为白河等地区用户提供了全套网页设计制作服务,及白河网站建设行业解决方案。主营业务为网站建设、网站设计、白河网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
本文转载自微信公众号「小明菜市场」,作者小明菜市场 。转载本文请联系小明菜市场公众号。
Hi ! 我是小小,今天是本周的最后一篇,本篇将会着重讲解关于 JVM 调优和性能监控方面的内容
常用工具
常用工具主要有 JDK 自带工具与 Arthas 这两种工具。
JDK 自带工具
jps 虚拟机进程状况工具
用于查看虚拟机进程状况的工具 命令示例
- $ jps
- 15236 Jps
- 14966 Example1
jstat 虚拟机统计信息监视工具用于查看虚拟机的堆内存,内存信息,类的装载和卸载信息等内容
显示堆内存信息
- jstat -gc 14966
- S0C 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 Time
- 829 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./install-local.sh
启动
- ./as.sh
help
dashboard 实时数据面板
thread 线程信息
jad 反编译类
watch 数据观测
调优
部署方式
服务器经常出现卡顿这是由于 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
关于作者
我是小小,生于二线,活在一线的程序猿,我是小小,我们下期再见。
当前文章:调优|别再说你不会JVM性能监控和调优了
网站URL:http://www.shufengxianlan.com/qtweb/news7/513107.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联