2007年11月16日星期五

使用JConsole远程监控Java程序

  1. 首先程序必须运行在Java SE 5.0以上,在启动参数中加入:-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 9999表示监控的端口号,要确保可以访问。上面的设置将口令验证与ssl访问关闭。
  2. 在客户机上启动jconsole,弹出对话框的"远程 "属性页中输入host_IP:9999 选择"连接" ,就能查看到远程程序的运行情况了。

解释一下JConsole可以监控的常用项:
内存:
  1. Eden Space (heap): 内存最初从这个线程池分配给大部分对象。
  2. Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。
  3. Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。
  4. Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。
  5. Code Cache (non-heap): HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做"代码缓存区"(code cache)
线程:
  1. 名称:线程的名称
  2. 状态:WAITING,RUNNABLE,TIMED_WAITING,BLOCKED
  3. 阻塞总数:
  4. 等待总数:
  5. 堆栈
VM摘要信息等。

没有评论: