码迷,mamicode.com
首页 > 系统相关 > 详细

JVM监控hive进程

时间:2016-06-14 19:11:10      阅读:334      评论:0      收藏:0      [点我收藏+]

标签:

JVM监控

JVM:Java Virtual Machine(Java虚拟机)

 

监控工具:

jdk自带(以下面两个为例,还有其他类型的监控工具):

jconsole.exe、jvisualvm.exe(jdk自带的实时监控)

IBM:

IBM Pattern Modeling and Analysis Tool for Java Garbage Collector(ga441.jar)

IBM Heapanalyzer(ha456.jar)

 

使用方法:

实时远程监控参数:

实时监控工具jconsole.exe、jvisualvm.exe可以用来对java程序进程进行实时监控,实时信息包括该进程的实时cpu、内存(堆)、线程和类,前提是程序所在的机器要打开一个端口,以这次监控的hive进程为例:

所在节点:172.19.189.24

监测Linux 端口使用情况:

netstat -tunlp |grep 2990  没有东西出来的话说明该端口没有在用,可以使用

修改Hive JVM 参数   启用 JMX 远程连接:

-Dcom.sun.management.jmxremote

-Dcom.sun.management.jmxremote.port=2990

-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

上面几个JVM参数是启用JMX远程连接的配置参数,

gc相关参数:

用来生成内存堆的相关信息文件(可以用IBM提供的两个工具进行分析):

下面再加几个参数,用来生成gc的相关文件:

-verbose:gc

-XX:+PrintGCDetails

-XX:+PrintGCDateStamps -Xloggc:/var/log/hive/gc.hiveserver2.log-`date+‘%Y%m%d%H%M%S‘` -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/hive

-XX:+DisableExplicitGC -XX:+UseCompressedOops

 

加完之后,重启hive服务,在24上ps –ef|grep hive  即可看到hive进程的详细信息,如下图所示:

 

在进程信息中即可以看到这几个参数已加进去,此时即可以远程连接进行监控:

jvisualvm操作示例:

打开jvisualvm.exe  (我的目录为:C:\Program Files\Java\jdk1.7.0_25\bin)

按以下步骤即可:

 

 

jconsole的使用方法跟jvisualvm基本一样:

打开后的界面如下:

 

IBM分析工具示例:

后面加的几个gc参数会生成gc文件,内容为JVM实时的垃圾回收情况,另外当发生内存溢出时会把此时内存堆的dump文件生成出来,具体操作示例和打开后的情况大致如下面几个图所示:

打开(ga441.jar,分析内存垃圾回收情况):

 

选择文件打开后,即可看到内存的实时变化情况:

 

打开ha456.jar,分析内存dump文件的情况,由于比较大,在打开的时候分配的内存数要大于文件的大小,如下:

 

打开后即可看到OutOfMemory时内存的情况:

 

JVM监控hive进程

标签:

原文地址:http://www.cnblogs.com/riyueyuzhuzhu/p/5584805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!