Jconsole工具和Java VisualVM

一、简介

Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监
控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗。

二、远程监控

1、启动Java程序时添加如下参数:

JAVA_OPTS="-Xms4096m -Xmx4096m 
-Dcom.sun.management.jmxremote.port=3009 -Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false"

2、Java程序启动成功后,打开Jconsole工具,可在jdk/bin下找到jconsole.exe, 双击弹出一个窗口,输入ip:port,用户名和密码为 root即可
image.png

连接成功之后页面.png
3、随时可以使用JConsole的在右上角的绿色连接状态图标,断开或重新连接到正在运行的Java虚拟机。 从下拉菜单中选择连接,然后新建连接,您可以
同时连接到任何数量运行中的Java虚拟机。

4、JConsole的,可以让您保存在一个逗号分隔值(CSV)文件中的图表提供的数据。 只需右键单击任何图表上,选择保存数据即可。

CSV格式是常用的电子表格应用程序之间的数据交换。 CSV文件可以导入到电子表格应用程序,可以用来创建这些应用程序的图表。 这些数据是两个或
多个命名的列,第一列表示的时间戳。 导入电子表格应用程序的文件后,你通常需要选择的第一列,并改变其格式为“日期”或“日期/时间”。
监控内存消耗.png
监控内存消耗显示:

1、“执行GC”的按钮,可以单击执行垃圾收集。 图表动态显示内存使用的堆和非堆内存的内存池。 可用的内存池取决于正在使用的版本的Java VM。

2、 串行垃圾回收的内存池的HotSpot Java虚拟机,有以下几种。
    eden空间(堆):大多数对象最初分配内存的池。
    生存空间(堆):包含eden空间垃圾收集后生存的对象。
    年老代(堆):池包含已经存在一段时间的对象。
    永久代(非堆):池包含的所有虚拟机本身的反射的数据,如类和方法的对象。 Java虚拟机,使用类数据共享,这一代分为只读和读写区域。
    代码缓存(非堆):HotSpot Java虚拟机的还包括一个代码缓存,包含内存,使用本机代码的编译和存储。

3、可以从图表下拉菜单中的选项选择不同的图表显示表示这些内存池的消费。 此外,点击在右下角的角落堆和非堆图标,将切换显示图表
  (与下拉框选择不同类型图表功能相同)。 最后,可以指定跟踪内存使用情况,从时间范围内的下拉菜单中的选项选择的时间范围。

4、“详细信息”区域显示了当前内存信息:

  (1)、已使用:目前使用的内存量,包括所有对象,可达和不可达占用的内存。

  (2)、分配 :保证由Java虚拟机使用的内存量。 提交的内存量可能会随时间而改变。 Java虚拟机可能会释放系统内存,已提交的内存量可能会少于
      最初启动时分配的内存量。 提交的内存量将始终大于或等于使用的内存量。

  (3)、最大值,可用于内存管理的最大内存量。 它的价值可能会发生变化,或者是不确定的。 如果Java虚拟机试图增加使用的内存大于提交的内存,
       内存分配可能失败,即使使用量小于或等于最大值(例如,当系统上的虚拟内存不足)。

  (4)、GC时间 :累计时间花在垃圾收集和调用的总数。 它可能有多个行,其中每一个代表一个垃圾收集器算法在Java虚拟机使用时间。
        MarkSweepCompact:年轻代GC
        Scavenge:full GC
       
        GC时会暂停整个JAVA应用,普通GC 只是对年轻代进行垃圾回收,full的GC会对整个堆内存(包含老年代、年轻代)进行垃圾回收。
        system的GC显示调用GC。

        full gc 只会在两个情况下发生:1)system.gc被显示调用时,会执行full gc。2)老年代的堆内存满时,会执行full gc。
 
5、较低的右侧的条形图显示堆和非堆内存中的内存池消耗的内存。 列会变成红色时,使​​用的内存超过了内存使用阀值。
内存溢出的原因有很多种,比如:

  1、数据量过于庞大;死循环 ;静态变量和静态方法过多;递归;无法确定是否被引用的对象;

  2、虚拟机不回收内存(内存泄漏);
         程序运行要用到的内存大于虚拟机能提供的最大内存就发生内存溢出了。 

内存溢出的一般解决方法:

  一个是优化程序代码,如果业务庞大,逻辑复杂,尽量减少全局变量的引用,让程序使用完变量的时候释放该引用,能够让垃圾回收器回收和释放资源。

  二就是物理解决,增大物理内存,然后通过-Xms2048m -Xmx2048m 的修改来增大内存空间。

二、Java VisualVM

1、Java VisualVM也是JDK的一个集成的分析工具,自从JDK 6 Update 7以后已经作为Sun的JDK的一部分。

2、VisualVM可以监控应用程序的性能和内存占用情况、监控应用程序的线程、进行线程转储(Thread Dump)或堆转储(Heap Dump)、跟踪内存泄漏、
监控垃圾回收器、执行内存和CPU分析,保存快照以便脱机分析应用程序;同时它还支持在MBeans上进行浏览和操作。 VisualVM自身要在JDK6以上的运
行,但是JDK1.4以上版本的程序也能被它监控。

3、启动方法:进入JAVA_HOME所在的bin目录,运行jvisualvm.exe就可以启动VisualVM

   远程连接WAS服务器的话,需要添加JMX连接方式就可以了
Java VisualVM.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容