zoukankan      html  css  js  c++  java
  • JVM监控hive进程

    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时内存的情况:

  • 相关阅读:
    App Store 审核指南
    Redis持久化
    PHP扩展高性能日志系统SeasLog简单上手
    Linux下Redis的安装配置
    Windows下Redis的安装
    安装wamp环境 最新完整版
    Git安装配置(完整版)
    Linux下SVN配置
    配置最新版LAMP环境
    Linux下ftp的安装配置
  • 原文地址:https://www.cnblogs.com/riyueyuzhuzhu/p/5584805.html
Copyright © 2011-2022 走看看