iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java性能监控的示例分析
  • 779
分享到

Java性能监控的示例分析

2023-06-17 13:06:28 779人浏览 泡泡鱼
摘要

小编给大家分享一下Java性能监控的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在前些日子,我们做了一些性能监控的工作,有一些值得记录的地方:jdk自身

小编给大家分享一下Java性能监控的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

在前些日子,我们做了一些性能监控的工作,有一些值得记录的地方:

jdk自身提供了很多工具,基于命令行和GUI的都有,学会合理应用它们是很有用处的。

首先是jmap,这是一个命令行程序,用来查看JVM中对象数量情况,直接输入jmap会显示用法,下面是两个常用的功能:

Java代码

jmap -histo 'jvmPid' > memory.txt

其中jvmPid为当前虚拟机进程的系统ID号,等待过后,memory.txt会按空间占用由大到小的顺序保存当前虚拟机运行中存在的对象类型,我们可以由此看出哪些类型对象占的空间和生成的数目较多,尤其是在自定义对象出现问题导致不能及时回收,这个功能是很有用的。

Java代码

jmap -heap:fORMat=b 'jvmPid'

和上面的不同,上面是生成一个文本文件,而这里会生成一个二进制快照文件,可以用相应的分析软件来打开它来进行功能更全面的检测,如Eclipse Memory Analyzer。

需要注意的是,上面的导出快照命令,在1G左右JVM内存的情况下,要大概等待1分钟左右的时间,且执行时会使JVM暂停执行,因此不要在正式运行系统的高峰期或关键时刻使用。

接下来是jstat,这也是一个命令行程序,用来查看JVM的各个内存和GC的使用情况,用法和参数非常多,有两个我们用到的功能:

Java代码

jstat -gcutil 'jvmPid'

会显示此刻GC的情况,其中YGC和FGC代表小GC和大GC的次数,YGCT和FGCT则代表小GC和大GC运行的占用时间,正常情况下,大GC的次数应远远小于小GC,例如我当前的系统小GC已经有10w次,而大GC只有50次,这是程序设计运行良好的表现。

Java代码

jstat -gccapacity 'jvmPid'

会显示此刻GC各内存池占用量,和上条命令结果结构类似,同时也有一个问题,显示的数据不是很直观,如果通过GUI观看就好多了。

JVM自带了GUI监控状态的功能,在JDK5中,我们需要做一些配置手动开启它,首先我们要在JVM启动项增加一些属性,假设我们的系统是一个运行在Tomcat容器下的项目,我们就可以修改JAVA_OPTS变量来开启监控服务

Java代码

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false"

这将开启远程基于jmx监控的服务功能,这样的配置方式,同时也开启了默认的身份验证机制,我们还需要在另外的地方设置权限,用户名和密码才能登录,我们先把这些服务端剩下的工作搁置一旁,先说说客户端的部分。

我们需要GUI客户端访问工具来远程查看该虚拟机的信息,JDK5自带了一个名为jconsole的客户端,可以在JDK目录的bin文件夹下找到它并可以直接双击运行,点击“远程”标签,之后输入远程IP,端口,用户名和密码,如服务端配置正常,即可成功访问。

回到服务端上来,我们还需要配置JVM的远程用户名和密码,这个要修改$JAVA_HOME/jre/lib/management/jmxremote.access和jmxremote.passWord.template文件。

首先直接修改jmxremote.access文件,取消***两个用户名的注释,改为

Java代码

monitorRole   readonly     controlRole   readwrite \                   create javax.management.monitor.*,javax.management.timer.* \                   unreGISter

这两个用户的区别显而易见,你取消一个当然也可以。

然后修改jmxremote.password.template的文件名,将其改成jmxremote.password,之后同样编辑***两行用户,将密码改成你想要的,很简单吧。

之后还要做一步,将jmxremote.password文件的权限改为可读可写

Java代码

chmod 600 $JAVA_HOME/jre/lib/management/jmxremote.password

至此,还有***一点需要注意,要将/etc/hosts文件中127.0.0.1修改成你真正的外网IP,如210.209.83.37,并且运行hostname -i命令返回的IP也应该是210.209.83.37才可以,每次修改完上述文件,要重新启动JVM,监控服务才会生效。

大功告成,开启JVM以后,我们可以运行jconsole客户端,输入IP端口,用户名和密码,用户名为monitorRole或controlRole或你自定义的(权限不同)。

也可以免去用户验证部分,只需要再加入-Dcom.sun.management.jmxremote.authenticate=false即可,也可以通过修改com.sun.management.jmxremote.password.file和com.sun.management.jmxremote.access.file自定义权限文件和密码文件的位置,不过这也没有什么太大必要。

成功登录后,因为是GUI界面,所有信息可以很直观的被我们所学习和接受,但还需要我们具备一些JVM的知识,尤其是GC方面,有机会的话,会在以后的文档中继续说明。

以上是“Java性能监控的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Java性能监控的示例分析

本文链接: https://www.lsjlt.com/news/289452.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java性能监控的示例分析
    小编给大家分享一下Java性能监控的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在前些日子,我们做了一些性能监控的工作,有一些值得记录的地方:JDK自身...
    99+
    2023-06-17
  • Linux性能监控之Memory的示例分析
    小编给大家分享一下Linux性能监控之Memory的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux性能监控每一个进程启动时都会向系统申请虚拟内存...
    99+
    2023-06-16
  • Linux性能监控之Network的示例分析
    这篇文章主要为大家展示了“Linux性能监控之Network的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux性能监控之Network的示例分析”这篇文章吧。大部分的以太网络都是...
    99+
    2023-06-16
  • Node.js性能监控实例分析
    这篇文章主要讲解了“Node.js性能监控实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js性能监控实例分析”吧!为什么需要性能监控Nod...
    99+
    2024-04-02
  • redis中状态监控和性能调优的示例分析
    这篇文章主要为大家展示了“redis中状态监控和性能调优的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“redis中状态监控和性能调优的示例分析”这篇文...
    99+
    2024-04-02
  • SHELL脚本监控JAVA进程的示例分析
    这篇文章主要为大家展示了“SHELL脚本监控JAVA进程的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SHELL脚本监控JAVA进程的示例分析”这篇文章吧。脚本内容:java_chec...
    99+
    2023-06-09
  • spring boot actuator监控的示例分析
    这篇文章主要介绍了spring boot actuator监控的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。spring boot actuator介绍Spring...
    99+
    2023-06-25
  • web项目中golang性能监控实例分析
    这篇文章主要介绍“web项目中golang性能监控实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“web项目中golang性能监控实例分析”文章能帮助大家解决问题。性能监控一、web项目(如g...
    99+
    2023-06-30
  • SpringBoot指标监控actuator的示例分析
    这篇文章主要为大家展示了“SpringBoot指标监控actuator的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SpringBoot指标监控actuator的示例分析”这篇文章吧。...
    99+
    2023-06-25
  • Hibernate性能的示例分析
    这篇文章将为大家详细讲解有关Hibernate性能的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Hibernate在解决性能问题方面做得非常好。有了它的缓存机制,使用第三方缓存和数据库连接池,就...
    99+
    2023-06-17
  • MySQL数据库监控项的示例分析
    这篇文章将为大家详细讲解有关MySQL数据库监控项的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 监控项目 MYSQL.QPS &...
    99+
    2024-04-02
  • 为JAVA性能而设计的示例分析
    这篇文章主要介绍为JAVA性能而设计的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  第一部分: 接口事宜  概要  许多通常的 Java 性能问题都起源于在设计过程早期中的类设计的思想, 早在许多开发者开...
    99+
    2023-06-03
  • 解析JVM内存监控流程的示例分析
    解析JVM内存监控流程的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。你对JVM内存监控是否熟悉,这里向大家简单描述一下,这里是亲自测试的详细配置过程,...
    99+
    2023-06-17
  • RabbitMQ中Web管理与监控的示例分析
    这篇文章主要介绍了RabbitMQ中Web管理与监控的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。RabbitMQ提供了完善的管理和监控工具1、MANAGEMENT...
    99+
    2023-06-29
  • 插入性能的示例分析
    这篇文章给大家介绍插入性能的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用append提示进行insert叫做直接路径加载插入。【特点】使用这种提示因为系统不去查找freelist链表中的空闲块,直接在高水...
    99+
    2023-06-06
  • Percona server mysql之索引监控的示例分析
    这篇文章主要介绍了Percona server mysql之索引监控的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • js前端代码异常监控的示例分析
    这篇文章将为大家详细讲解有关js前端代码异常监控的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。阅读目录什么是前端代码异常 window.onerror...
    99+
    2024-04-02
  • Mysql中MGR监控及优化点的示例分析
    这篇文章主要介绍Mysql中MGR监控及优化点的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!监控点可用性监控本节点是不是online:select member_...
    99+
    2024-04-02
  • Linux安装性能的示例分析
    这篇文章主要为大家展示了“Linux安装性能的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux安装性能的示例分析”这篇文章吧。在硬件系统上安装Linux系统之前,需要考虑许多有助...
    99+
    2023-06-16
  • Java基准性能测试之JMH的示例分析
    这篇文章主要为大家展示了“Java基准性能测试之JMH的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java基准性能测试之JMH的示例分析”这篇文章吧。一、JMH vs JMeterJ...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作