jvm 性能调优

您所在的位置:网站首页 内存容量最大单位 jvm 性能调优

jvm 性能调优

2023-03-14 09:50| 来源: 网络整理| 查看: 265

一、jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令 jmap分析内存泄漏,首先应该明确的是,jmap命令只能为泄漏提供一些线索和依据,但是不能确切的排查出代码中哪一行真正的出现了问题 jstack是java虚拟机自带的一种堆栈跟踪工具。常用于分析线程问题(如线程间死锁[deadLock]) 使用示例:https://juejin.cn/post/7028211579862646814 jstat用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译(即使编译)等运行数据

1、登录 kubectl exec -it 某台服务器实例 -n authing – bash

2、查看cup、内存使用情况 top 在这里插入图片描述

对应的表示:(没有单位的占用物理内存大小单位都是KB)

在这里插入图片描述

3、结合top命令可以查出占用CPU最高的线程 top -H -p 6

4、机器cpu、内存使用情况 free -h 在这里插入图片描述

对应的表示 在这里插入图片描述

5、查看 java 服务进程 pgrep java 在这里插入图片描述

6、jvm 内存占用前50 jmap -histo:live 6 | head -50

单位 byte 在这里插入图片描述

7、查看占用内存最多的最象,并按降序排序输出,取出前50个 jmap -histo 6|sort -k 3 -g -r | head -50

单位 byte 在这里插入图片描述

8、查看对象数最多的对象,并按降序排序输出,取出前50个 jmap -histo 6|sort -k 2 -g -r | head -50

单位 byte 在这里插入图片描述

9、java应用占用资源情况(堆栈信息) jmap -heap 6 //报错使用如下 jhsdb jmap --heap --pid 6 在这里插入图片描述

10、jstat 返回结果容量大小单位KB(文章里单位不对),例如:元数据空间统计,jstat -gcmetacapacity 6 https://blog.csdn.net/qq_35427589/article/details/127166980

11、每1 秒一次显示进程号为6的java进程的GC情况 jstat -gc 6 1000

详情参考:https://blog.csdn.net/qq_35427589/article/details/127166980 在这里插入图片描述

12、每1 秒一次显示进程号为6的java进程垃圾回收统计情况,显示10次 jstat -gcutil 6 1000 10

在这里插入图片描述

详情参考:https://blog.csdn.net/qq_35427589/article/details/127166980

13、Jinfo 查看正在运行的Java应用程序的扩展参数: 包含 JVM 参数与 java 系统参数 jinfo 6 在这里插入图片描述

发现内存占用很大,一般设置大小为3/4

14、copy 文件 kubectl cp -n authing authing-worker-c96489b74-j6jsb:/app/dump.hprofile D:/work/authing/ldap/dump.hprofile

后续可以调研 jvm 开启 gc日志



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3