首页 > 自考资讯 > 自考知识

java性能监控框架,java监控系统

头条共创 2024-07-05

Java自带了一个监控管理控制台jconsole,它是一个性能监控工具。它提供了有关Java进程内存、线程、类加载、JVM摘要、MBean等的实时信息,并且可以提供上述内容的参考。问题。

1. JVM 一些参数

在启动jconsole之前,我们先回顾一下JVM的一些主要参数。

-Xms 初始/最小堆内存大小-Xmx 最大堆内存大小-Xmn 年轻代大小-XX:NewSize 年轻代大小-XX:MaxNewSize 年轻代最大-XX:NewRatio 老年轻代比例-XX:MaxPermSize 永久代最大-XX:PermSize 持久代初始化部分信息表述不正确Xms 和Xmx 设置JVM 内存大小。除了为开发人员保留的堆内存之外,JVM 还拥有非堆内存。

读者可能会注意到,年轻代大小的划分有三种方法:-Xmn方法、-XX:NewSize + -XX:MaxNewSize方法、-XX:NewRatio方法。优先级从最高到最低依次为-XX:NewSize + -XX:MaxNewSize、-Xmn 和-XX:NewRatio。即优先级高的在前面,优先级低的在后面。它将被覆盖。

2. 本机启用 jconsole 以监控 Java 进程

CMD切换到%JAVA_HOME%/bin目录,直接运行jconsole

输入401d00018ad3f2bc9489~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=8%2Flh%2BthUc8iJFqWBiZN51xz2%2Bys%3D,打开Java监控和管理控制台。

401c000190e65738fcc8~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=Icoy1WJRduycw2tMITG3UDcilSs%3D 本地进程列表显示所有本地运行的Java 进程。双击感兴趣的进程(例如PID为8504的进程)以监视该进程。

402000016ebefb737bbb~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=W%2BANzXmAt1qjhkRhgt0EX7oHQZo%3D

3. 远程监控 Java 进程

要远程监视Java 进程,必须在启动时启用JMX。

以远程主机上的Tomcat为例,首先在jmx中找到可用的远程端口(例如9999)。

401d00018d88ff171e5b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=iJqr6l4jJrU6qmnFavwlcs77jGA%3D 没有好消息~在%TOMCAT_HOME%/bin/catalina.sh文件前添加以下配置:

[普通] 显示普通副本

您想打印吗?

JAVA_OPTS='-Xms1024m -Xmx2048m -XX:MaxPermSize=128m -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false' 如图表

401b0004966903137571~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=ak5ndgDLOB67SDRDHDfTYGnYtfI%3D 接下来,重新启动tomcat,打开本机上的Java监控和管理控制台,并在Remote Process中输入远程主机名和jmx端口号。

401f000178352be3d60b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=y40BZnnSj5Fx2gibK%2Bh%2BBrpmFjg%3D 单击“连接”按钮可实时监控远程主机上的Tomcat。

401a0004295a41843d7d~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=qkVVBnwV0tr8Gxp8tvHoppokYSM%3D

4. jconsole 提供的一些有用信息

让我们看一下下面步骤4 中的案例。

4.1. 检查JVM配置信息是否有效

单击VM 摘要并验证您配置的一些JAVA_OPTS 参数是否已启用。

401c000194525d653a37~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=1%2FNLRHXR44%2FpV40ZQsTnjNrXLao%3D4.2.实时监控Tomcat线程池和自定义线程池的数量

你还在为Tomcat线程池的神秘所困惑吗?你还被自定义线程池的“黑匣子”所困扰吗?看看下图吧。

401e0001786541e73d4e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=sllqJOe50o5SKjweMwu32hnSMDs%3D 从上图可以看到,Tomcat刚刚启动。只有一个http-8080-Acceptor-0 线程。让我们回到项目来检查一下。

401a00042a4b5454daf6~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=LWXQy1z%2FWRlzotVsj2f2r2AxnMw%3Dhttp-8080 线程数突然增加到8个。一切都清楚并在掌控之中吗?

4.3. 实际内存使用情况

单击Java监控管理控制台中的Memory叶项,可以查看Tomcat堆内存使用情况。

401c0001957c07274f8e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=znFyCkcU%2ByB2xRwvFDCcq6M0smk%3D图表有很多选项。

401d00018ff9e0a5003f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=NsraUIS8nsNCac5nGr1qREGzsTg%3D 看看Eden区:

401e00017985dd07dfde~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=XIe6rcZDjOBYquX1oE4klmQbuJU%3DEden区的走势与整个堆内存的走势基本一致。我们来看看幸存者区。

401c00019637a821b53b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=M%2FxKatWww7KtOqrcwj%2B4kwdT3lw%3D幸存者区趋势短期内相对稳定。看看老一代区域。

402000017252968bd557~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=egPaHc5ivDYZKqTjj8UFHGk%2FEwI%3D这个趋势比较稳定,如果对比Survivor和Old Gen区域的两张照片,可以清楚地看到19:58左右有一批物体从Survivor区域移动到了Old Gen区域。最后,我们来看看彼尔姆地区。

这种趋势是最稳定的。大约在19:58处,当我们访问该项目时,我们可以清楚地看到一些新的类和其他静态资源被加载到JVM中。 5.4 中加载的类数量图也支持这一点。

4.4. Tomcat加载状态

401b0004998e30bacaaf~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=sIrU7b2ZI3xEr00QJjCGkfS9NlY%3D5。与jmap 一起使用。

401d00019126aa5c55b7~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=iU4b1YvKmM1w2%2BKTDW8q4eXgJ90%3D 首先确保Tomcat进程的PID为13863,然后运行jmap -heap 13863。

401a00042c7c2fdb727e~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720751676&x-signature=5%2Bf9VjVfcKTWDOZ3uIWMDf17xxU%3DHeap Configuration”下列出的内容基本上就是您刚刚配置的内容。例如,MaxHeapSize 为2048 MB,MaxPermSize 为128 MB。这与4.1 相同。

版权声明:本文转载于今日头条,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢