#!/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内存池中存在了一段时间的对象。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库java_实用工具笔记(4)在线全文阅读。
相关推荐: