java_实用工具笔记(4)

2018-12-20 21:59

#!/bin/bash

ip=\

JVM_ARGS=\JMX_ARGS=\

-Djava.rmi.server.hostname=192.168.0.11 \\ -Dcom.sun.management.jmxremote -jar \\ -Dcom.sun.management.jmxremote.port=9015 \\ -Dcom.sun.management.jmxremote.ssl=false \\

-Dcom.sun.management.jmxremote.authenticate=true \\ -Dcom.sun.management.jmxremote.password=true \\

-Dcom.sun.management.jmxremote.password.file=/usr/local/jdk/jre/lib/management/jmx_gouqs_password.txt \\

-Dcom.sun.management.jmxremote.access.file=/usr/local/jdk/jre/lib/management/jmx_acl_gouqs.txt\

JAVA_HOME=\cd ${JAVA_HOME}/bin start(){

netstat -nlp|grep 8011|grep java >/dev/null if [ $? == 0 ] then

echo \ exit 0 fi

${JAVA_HOME}/bin/java ${JVM_ARGS} ${JMX_ARGS} -jar /etc/shell/monitorGame.jar $ip & } stop(){

netstat -nlp|grep 8011|grep java >/dev/null if [ $? == 0 ] then

pid=`ps -ef|grep java|grep 8011|awk '{print $2}'` kill -9 $pid fi }

case $1 in start) start ;; stop) stop ;;

*)

echo \exit 0 ;; Esac

这和在tomcat里配置没有什么区别。

8.5 使用

8.5.1 使用MBean标签监控和管理MBean

注册到JMX代理的平台或者应用的MBeans,可以通过MBeans标签获取。例如,内存的MBeans如下面定义

public interface MemoryMXBean {

public MemoryUsage getHeapMemoryUsage(); public MemoryUsage getNonHeapMemoryUsage();

public int getObjectPendingFinalizationCount(); public boolean isVerbose();

public void setVerbose(boolean value); public void gc(); }

内存的MBean包括四个属性:

? ? ? ?

HeapMemoryUsage. 用于描述当前堆内存使用情况的只读属性

NonHeapMemoryUsage. 用于描述当前的非堆内存的使用情况的只读属性 ObjectPendingFinalizationCount.用于描述有多少对象被挂起以便回收。 Verbose.用于动态设置GC是否跟着详细的堆栈信息,为一个布尔变量

内存的MBean支持一个操作——GC,此操作可以发送进行实时的垃圾回收请求

图3: MBean 标签

左边的树形结构以名字的方式展示了所有MBeans的列表。一个MBean对象的名字由一个域的名字和一串关键字属性组成。例如,JVM的平台的MBeans是在“java.lang”域下的一组,而日志的MBeans则在\域下。MBean对象的名字在javax.management.ObjectName 规范中定义。

当你在树中选中一个MBean,属性,操作,或者通知等一些信息会再右边显示出来。如果属性是可写的(属性被标志为蓝色),你可以进行设置。

图4: MBean 操作

你可以操作在”操作”节点中列出的操作。

图5: MBean 通知

你也可以看到由MBean发送出来的通知:默认情况,如果你不订阅通知的话,JConsole不会收到MBean发生过来的通知。你可以点击\订阅\按钮来堆通知进行定义,而使用\末订阅\按钮来取消订阅

8.5.2 监控内存

内存标签页通过读取内存系统、内存池、垃圾回收的MBean来获取对内存消耗、内存池、垃圾回收的情况的统计。

图 6:

上图展示了内存随时间变化的使用情况。有对堆的、非堆的以及特殊内存池的统计。内存池信息是否能被获取,取决与使用的Java虚拟机。下面列表展示了HotSpot虚拟机的内存池情况。

内存池“Eden Space ”(heap): 内存最初从这个线程池分配给大部分对象。

内存池“Survivor Space” (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。

内存池“Tenured Generation” (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。


java_实用工具笔记(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:网上所有fluent pbm 相关问题和资料

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: