利用JConsole工具监控java程序内存和JVM

article/2025/11/6 0:46:27

项目部署成功后时间过不多久内存就撑爆了,所以需要检测工具来监控项目内存情况。

项目内存爆满 docker容器直接挂掉。启动命令上也加上了内存溢出生成dump日志。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/dump.log

解决问题思路大致有两种 (个人分析)

1.排查问题基本都是分析dump日志定位问题后解决。

2.通过工具监控程序分析定位问题解决。

JProfiler 工具也是一大利器,可以好好研究

一.找到java应用程序对应的进程PI

性能测试应用程序访问地址:http://192.168.29.218:7070/training/

部署的应用服务器为tomcat6.028

  1. 启动tomcat服务器后,任务管理器里可以看到多了java.exe进程,如图

PS:这里启动了多个其他程序

      2.查询测试应用程序对应的进程PID号(根据端口号查找)

          1)  Cmd命令:netstat  -aon|findstr  "7070"

二.启动JConsole监控工具

方法一:

打开cmd命令窗口,进入jdk安装路径下/bin目录,

输入命令:JConsole “PID号” 如图:

如图自动启动并打开JConsole监控界面:

方法二:进入jdk安装目录bin目录下,双击运行JConsole.exe程序,选择应用程序对应的PID程序连接或双击即可

三.对图表进行性能分析

JConsole主要是监控java应用程序,它是jdk自带的工具,一个基于JMX用于连接正在运行的JVM,会启动com.sun.management.jmxremote实现默认地JMX管理客户端。

1)  概要

概要界面可以实时查看java应用程序的堆内存使用情况、线程、类以及CPU使用情况,如图:

2)  内存

内存界面可以在图表选择“堆内存使用情况”和“非堆内存使用情况”实时图,并显示内存详细信息:使用内存、分配:最大值等,如图:

PS:重点关注使用内存的占比,使用内存与最大值之间的合理比值为1:3,已使用内存不能大于1/2最大值,否则内存存在瓶颈。

3)  线程

线程图不是重点关注,只关注该线程情况,并可以检测是否有死锁线程。

4)  类

类图并不是重点关注图,与应用程序类的多少有关,无固定值。

1)  VM摘要

VM摘要图是观察JVM使用情况图

堆是由Java虚拟机(JVM,下文提到的JVM特指Sun hotspot JVM)用来存放Java类、对象和静态成员的内存空间,Java程序中创建的所有对象都在堆中分配空间,堆只用来存储对象,应用程序通过存放在堆栈(Stack)内的引用来访问堆数据,一个JVM进程只能拥有一个堆。JVM通过-Xms和-Xmx参数分别设置堆的初始值和最大值。

此图需要关注分析当前堆大小、堆大小的最大值、分配的内存,以及物理总内存和可用物理内存。


http://chatgpt.dhexx.cn/article/733Ze8cl.shtml

相关文章

python的主流开发工具排名,最常用的python开发工具

有哪些值得推荐的 Python 开发工具? 第一款:最强终端 Upterm它是一个全平台的终端,可以说是终端里的IDE,有着强大的自动补全功能,之前的名字叫做:BlackWindow。 有人跟他说这个名字不利于社区推广,改名叫…

2022年推荐算法效率开发必备工具榜单

一.引言 一个优秀的算法工程师应该至少具备3类能力: 基础能力:包含数理统计、机器学习、概率论以及深度学习等相关知识 编程能力:python、C or Java 以及基本的 Sql、linux、shell 命令 核心能力:对数据的敏感程度&#xff0c…

java工具类_16 个超级实用的 Java 工具类

阅读本文大概需要 4 分钟。 出处:alterem juejin.im/post/5d4a25b351882505c105cc6e 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。 以下工具类、方法按使用流行度排名,参考数据来源于…

Java程序员新手老手都离不开八大开发工具

1.Eclipse 尽管IntelliJ IDEA、NetBeans和一些其他的IDE正在日益普及,但是有调查表明,Eclipse仍然是几乎半数Java开发人员首选的开发环境。 Eclipse是IDE领域的瑞士军刀,有着大量定制的接口和无数的插件。它无处不在,后面本文将推…

Java程序员怎样考察报表工具的开发效率

前言 工具,本身就是为了解决各种重复性工作效率低下的问题而诞生的产物,报表工具也是工具,所以它的诞生,它的使命,也是为了提效!是为了提升数据信息化项目中报表的开发效率而诞生的 但不同的工具&#xf…

排名前 16 的 Java 工具类,你用过几个?

点击“开发者技术前线”,选择“星标” 让一部分开发者看到未来 转自:programcreek 链接:https://www.programcreek.com/ 在Java中,实用程序类是定义一组执行通用功能的方法的类。 这篇文章展示了最常用的Java实用工具类及其最常用…

Python输入整数n,求斐波拉契数列第n个数

递归方法: # 输入整数n,求斐波拉契数列第n个数。 # 思路: # 递归式算法: # 利用f(n) f(n-1) f(n-2)的特性来进行递归def fn(n):if n0:return 0if n1:return 1return fn(n-1)fn(n-2)print(fn(10):,fn(10), fn(3):,fn(3), fn(2):…

python输入一个整数,判断是不是素数(包括2),3种方法

刚开始写的时候,看了其他人的,发现他们都不能判断2,然后自己加了两句,很简单,浅浅发表一下第一篇文章 当然还有其他方法,比如 还有 但是,我觉得第一种是最简单的,你们觉得呢

【Python中整数进制的转换】

【小白从小学Python、C、Java】 【Python-计算机等级考试二级】 Python中整数进制的转换 选择题 在Python3.9中,以下python代码输出什么? myNumber 10 oct(myNumber) A.10 B.12 C.0o12 D.012 欢迎大家转发,一起传播知识和正能量,帮助到…

python输入整数_Python写程序让用户输入一系列整数,当输入小于零的数时结束输入,写入到文件中再读取计算...

1. 写程序让用户输入一系列整数,当输入小于零的数时结束输入 1) 将输入的数字存于列表中 2) 将列表中的数字写入到文件numbers.txt中 (提示: 需要将整数转为字符串或字节串才能存入文件中) 2. 写程序,将文件numbers.txt中的整数读入到内存中,重新形成数字组成的列表.计算这…

整数划分(python)

问题阐述 将正整数n表示成一系列正整数之和:nn1n2…nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数n的划分。 输入:一个正整数n 输出:n不同划分个数以及n的划分结果。 问题实例 例如正整数6有如下11种…

python输入整数_限制输入整数的5种情况(学数学学Python编程)

我们都知道,在获取用户输入的时候,搞不清楚用户会输入什么,或敲击哪个按键。 为了防止程序不能正常运行,需要有一定的检查判断用户的输入内容,以获取我们想要的数据类型。 整数分为正整数、零、负整数,正整数和零又组成了自然数(非负整数)。 五种情况,分别讲述。 一…

python用input输入整数列表_Python用input输入列表的方法

Python用input输入列表的方法 使用input输入数据时,使用逗号隔开列表的每一项,再使用ast.literal_eval()方法转成列表即可。 代码如下:import ast lists ast.literal_eval(input("请输入列表,使用逗号隔开: ")) pr…

python如何表示正整数_python 正整数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! nonceinteger是随机正整数,与 timestamp 联合起来,用于防止重放攻击。 secretidstring是在 云api密钥 上申请的标识身份的 secretid,一个 secretid 对应...接…

python整数范围_python整数范围

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 在python中,有什么方法可以获得最大的整数吗? 是否有一些预先定义的常量&#xff…

python判断是不是整数_python判断整数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python输出整数的方法:先使用str()函数将数字转换成字符串赋值给变量i,再用“if i.count(‘.’) == 0”语句判断字符串中是否没有小数点,如果是则输出这个字符…

python如何表示正整数_python中正整数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! nonceinteger是随机正整数,与 timestamp 联合起来,用于防止重放攻击。 secretidstring是在 云api密钥 上申请的标识身份的 secretid,一个 secretid 对应...这…

Python小数整数输出

成绩统计 aint(input()) num10 num20 for i in range(a):bint(input())if 60<b and b<85:num11elif b>85:num21num11print("%.0f%%" %(num1/a*100)) print("%.0f%%" %(num2/a*100))f 1.6 #小数部分舍弃 print("1.6直接整型输出是 %d&…

python 输入整数_python输入整数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! v = int(input(请输入一个整数:)) if v % 3 == 0 and v % 5 ==0:print(v,即是3的倍数又是5的倍数) else: print(不是3或5的倍数)... invariant: div*y + mod …

数据分析经典书籍大全

数据分析经典图书大全 一、数据分析-入门篇 1.1《 谁说菜鸟不会数据分析》 作者&#xff1a;张文霖, 刘夏璐, 狄松 简介&#xff1a;本书按照数据分析工作的完整流程来讲解。全书共8章&#xff0c;分别讲解数据分析必知必会的知识、数据处理技巧、数据展现的技术、通过专业化的…