`
can_do
  • 浏览: 265962 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Do家】如何通过shell命令行执行jmx中Mbean方法System.gc()?

阅读更多
如何通过shell命令行执行jmx中Mbean方法System.gc()?

可以按如下步骤实施:

<1/6>配置jvm参数,两个目标:其一是开启jmx,其二是启用显式执行GC命令-XX:-DisableExplicitGC
-XX:-DisableExplicitGC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10240 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.3.168

注意:
1> jvm参数配置时,需要指定port和host,尤其是跨网络访问时;
2> jmx启动后,会listen两个port,一个是jvm参数指定的,另一个是随机端口号,如果跨网络访问,注意两个port都需要在防火墙上开启;
3> 访问jmx的完整uri类似:【service:jmx:rmi:///jndi/rmi:192.168.3.168:10240】/jmxrmi,一般客户端都是将协议固化下来,仅需要ip和port即可;
4> 通过jndi方式访问,uri类似:【jndi:rmi://192.168.3.168:10098/jmxrmi】



<2/6>启动目标Java进程,检查jmx是否Listen就绪;
# netstat -tnulp|grep 3058
tcp6       0      0 :::40188                :::*                    LISTEN      3058/java          
tcp6       0      0 :::10240                :::*                    LISTEN      3058/java          
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3058/java          
tcp6       0      0 :::8080                 :::*                    LISTEN      3058/java          
tcp6       0      0 :::34035                :::*                    LISTEN      3058/java 


<3/6> 获取cmdline-jmxclient-0.10.3.jar资源,其中仅一个Client java类,通过jmx获取Mbean信息;

<4/6> 通过cmdline-jmxclient获取MBean成功的例子,如下:
# java -jar cmdline-jmxclient-0.10.3.jar - 192.168.3.168:10240 java.lang:type=Memory
Attributes:
ObjectPendingFinalizationCount: ObjectPendingFinalizationCount (type=int)
HeapMemoryUsage: HeapMemoryUsage (type=javax.management.openmbean.CompositeData)
NonHeapMemoryUsage: NonHeapMemoryUsage (type=javax.management.openmbean.CompositeData)
Verbose: Verbose (type=boolean)
ObjectName: ObjectName (type=javax.management.ObjectName)
Operations:
gc: gc
  Parameters 0, return type=void
 
<5/6> 通过命令行执行jmx中的MBean方法,System.gc()
java -jar cmdline-jmxclient-0.10.3.jar - 192.168.3.168:10240 java.lang:type=Memory gc

注意:此处jmx认证未开启,没有username和password,用【-】代替;


<6/6> 通过jdk命令jstat监控gc执行情况,发现FGC次数在增加,gccause是System.gc(),说明通过命令行jmx调用System.gc()执行成功
  # jstat -gccause 3514 3000 10
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                
  0.00   0.00   5.54   6.20  96.48  89.04      1    0.023     2    0.057    0.080 System.gc()          No GC              
  0.00   0.00   5.54   6.20  96.48  89.04      1    0.023     2    0.057    0.080 System.gc()          No GC              
  0.00   0.00   5.50   6.21  96.65  89.04      1    0.023     3    0.082    0.105 System.gc()          No GC              
  0.00   0.00   1.50   6.21  96.75  89.09      1    0.023     4    0.109    0.132 System.gc()          No GC              
  0.00   0.00   5.50   6.21  96.75  89.09      1    0.023     4    0.109    0.132 System.gc()          No GC              
  0.00   0.00   6.47   6.21  96.90  89.09      1    0.023     5    0.131    0.154 System.gc()          No GC
 
【小结】
1> 通过命令行执行jmx中注册MBean的其他方法,也可用此方式,实际应用场景,比如:方便监控并及时干预目标Java应用;

2> 执行System.gc()方法,可以释放Java进程中某些线程访问本地内存,比如DMA,Netty-NIO等产生的内存占用;


 


【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    Java分布式应用学习笔记09JMX-MBean的介绍.doc

    java

    jmxri-1.2.1.jar+jmxtools-1.2.1.jar

    1. MBean (Managed Bean):MBean是JMX中的基本管理单元,它代表了要管理的对象。MBean可以是标准的、自定义的或者由MBean服务器自动创建的。 2. MBean Server:MBean服务器是JMX架构的核心,负责管理MBeans,处理...

    jmxri.jar..

    jmxri.jar..................

    jmx 实例 rmi mbean

    通过阅读和理解这个示例,你可以更深入地了解如何在实际项目中应用JMX RMI MBean管理。这个实例可能包括创建MBean的Java类、配置RMI的脚本或属性文件,以及演示如何从客户端进行连接和操作的测试代码。 总的来说,...

    Java分布式应用学习笔记09JMX-MBean的介绍

    2. **定义属性和方法**:通过`DynaProperty`对象定义属性,并通过`DynaMBean`接口中的方法定义操作。 3. **创建DynaMBean实例**:使用`DynaMBean`实例并通过MBeanServer注册。 通过这种方式,可以实现更灵活的资源...

    agent-jmx-2.1.6.jar.zip

    《深入理解Java代理与JMX技术:以agent-jmx-2.1.6.jar.zip为例》 在Java世界中,代理(Agent)和Java...在实际应用中,我们需要了解JMX的基本概念和工作原理,熟悉Java代理的使用方法,以便充分发挥这个工具的潜力。

    agent-jmx-2.2.1.jar.zip

    使用这个代理,开发者或系统管理员可以轻松地将应用程序集成到JMX环境中,进行远程监控和管理,比如查看性能指标、执行操作或者接收通知。 使用“agent-jmx-2.2.1.jar.zip”时,首先需要将其解压,然后根据开发或...

    jmxtools-1.2.1.jar和jmxri-1.2.1.jar.zip

    mvn仓库里面找不到jmxtools-1.2.1.jar,jmxri-1.2.1.jar的包了,备个份,解压密码123

    tomcat-catalina-jmx-remote-9.0.5.jar

    tomcat-catalina-jmx-remote-9.0.5 tomcat-catalina-jmx-remote-9.0.5.jar

    亲测可用 com.sun.jmx. jmxri-1.2.1.jar

    Description Resource Path Location Type Missing artifact com.sun.jmx:jmxri:jar:1.2.1 pom.xml /eshop-storm line 2 Maven Dependency Problem

    jmxri.jar和jmxtools.jar 1.2.1

    - **MBean Server**:MBean Server是JMX架构的核心,负责管理MBean的生命周期,包括创建、注册、查找、删除MBean,以及调用MBean的方法。 - **MBean操作和属性**:MBean的操作和属性定义了MBean的功能和状态。属性...

    jmxtools-1.2.1.jar+jmxri-1.2.1.jar.zip

    Java Management Extensions (JMX) 是Java平台上的一个标准技术...尽管描述中提到“介绍没用”,但了解JMX、JMS以及它们如何通过`jmxtools.jar` 和 `jmxri.jar` 实现是至关重要的,这对于理解和利用这些资源至关重要。

    cmdline-jmxclient-0.10.3.jar

    3. **执行操作**:使用JMX MBean路径查询特定的MBean,获取其属性值,或者调用MBean的操作方法。 4. **数据收集与展示**:在Zabbix中创建相应的监控项和图形,通过`cmdline-jmxclient`获取的数据作为指标源,展示在...

    agent-jmx-3.0.1-javadoc.jar

    标签:agent-jmx-3.0.1-javadoc.jar,agent,jmx,3.0.1,javadoc,jar包下载,依赖包

    jmx-exporter-1.0.1.tar.gz

    jmx_exporter-1.0.1.tar.gz

    cmdline-jmxclient-0.10.3.jar.zip

    `cmdline-jmxclient-0.10.3.jar.zip` 是一个用于Tomcat性能监控的工具包,其中包含 `cmdline-jmxclient-0.10.3.jar` 文件,这是一个Java档案(JAR)文件,专门设计用于通过命令行界面与Java管理扩展(JMX)接口交互...

    Openfire源码 缺失的jar包- jetty-jmx-8.0.0.M2.jar

    Openfire源码 缺失的jar包- jetty-jmx-8.0.0.M2.jar 。还有其他jar包请查看

    论文研究-基于JMX的网络管理系统.pdf

    通过MBean和MBean服务器,JMX系统可以提供强大的配置管理、性能监控、日志记录和事件通知等功能。 JMX与SNMP(简单网络管理协议)相比,它们都是网络管理技术,但JMX更加适合于对Java应用程序的管理。JMX允许通过...

    JMX(一)-------MBean server

    3. **操作MBean**: 通过MBean Server,我们可以调用MBean的方法,修改其属性,或者获取其状态信息。 4. **通知服务**: MBean Server支持订阅和发布通知,当MBean的状态发生改变时,可以向注册的监听器发送通知。 5...

    jmxri-1.2.1.jar

    当你在Maven项目中遇到"maven本地库缺少jmxri-1.2.1.jar包"的问题时,这意味着你的Maven仓库中没有这个特定版本的JMX运行时实现,因此编译或运行项目时可能会遇到错误。 解决这个问题有几种方法: 1. **使用Maven...

Global site tag (gtag.js) - Google Analytics