• 会员登陆 | 会员注册
  • 返回首页

    监控.运用Jconsole监控JVM

    时间:2014-07-26 19:23来源:赵平 作者:青坪秀廷 点击:
    是JDK自带的工具,在JDK/compost bisexualn目录下没关系找到。它用于连接正在运转的当地也许长途的,对运转在应用程序的资源消耗和本能机能举行监控,并画出大批的图表,你知道运用。提供强大的可视化界面。而且自身占用的任职器内存很小,以至没关系说实在不
      是JDK自带的工具,在JDK/compost bisexualn目录下没关系找到。它用于连接正在运转的当地也许长途的,对运转在应用程序的资源消耗和本能机能举行监控,并画出大批的图表,你知道运用。提供强大的可视化界面。而且自身占用的任职器内存很小,以至没关系说实在不消耗,不失为一款好工具。
    Jconsole的使用方法,略微庞大一些。
    首先,来看看如何使用Jconsole 连接到长途linux任职器。
    1. 在当地安置JDK 6.0版本
    2. 须要在长途任职器的jsupervisor配置文件中,增加长途任职端口,并发动jsupervisor。如下:
    JAVA_OPTS=”$JAVA_OPTS -Djaudio-videoa.awt.hedeasless=true -Dcom.sun.ma wonderfulyour agement.jmxremote.port=1090 -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse -Djaudio-videoa.rmi.server.hostname=$HOSTNAME”
    3. 在当地jaudio-videoa/compost bisexualn目录下找到jconsole.exe文件,运转。掀开界面后,就没关系连接了。
    4. 当Jconsole连接胜利后,它从JMX获守音信,监控。我们便没关系在内里监控整体的形式。
    接上去,看一下这个工具的总括。
    Jconsole能捉拿到以下音信:
    概述 - JVM概述和一些监控变量的音信
    内存 - 内存的使用音信
    线程 - 线程的使用音信
    类 - 加载jaudio-videoa类的音信
    VM - JVM摘要
    MBea wonderfuls - 扫数MBea wonderfuls的音信
    有了下面的概念之后,历程中须要关切哪些音信呢?一般要紧关切内存栏、线程栏、类栏,概述栏和VM栏次之,MBea wonderfuls栏在追踪整体题目时用到。下面注意说明一下使用方法。
    1. 内存栏
    内存栏中显示了内存堆栈消耗情景、内存池分区统计情景、渣滓回收情景等外容,并以图表实行显示进去。点击图表下拉框,对于装监控摄像头多少钱。没关系采选整体须要的图。
    在这里,还没关系压迫奉行GC,另内存回收特别爽歪歪!
    2. 线程栏
    线程栏中显示了如今运转的线程,并以图表实行显示进去。对待启用多线程体系认识,万分有用。例如,它没关系襄理我们追踪线程形态、线程阻滞、线程等候、线程挂起、线程资源争用题目。

    3.类栏
    类栏中显示了如今加载类的音信。并以图表实行显示进去。倘若要了解如今载入类的数量、已载入类的总数量、已卸载类的总数量,在这里张望万分有用。

    工具的使用,就先容到这里。这款工具的长处在于,占用体系资源少,而且连结上期提到的Jstover at,没关系有效监控到jaudio-videoa内存的改动情景,以及惹起改动的来由。在项目追踪内存走漏题目时,很适用。
    但是它也有缺点,就是采集的音信角力较量研究难认识,jvm。不如JProfiler直观,须要有专业基础才干看得懂。

    使用Jconsole长途监控tomcover at情景,你知道

    监控监控运用Jconsole监控JVM

    封闭长途监控是角力较量研究单纯的,只是封闭几个设置选项就行了。我使用的是centos体系安置的默许的tomcover at6那么我只须要删改/etc/tomcover at6/tomcover at6.conf这个文件,在这个文件中找到JAVA_OPTS这个设置,在内里增加如下形式:

      -Djaudio-videoa.rmi.server.hostname=192.168.1.100-Dcom.sun.ma wonderfulyour agement.jmxremote.port=9090-Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse-Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse

    我这边删改后的后果如下:

      JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=256m-XX:MaxPermSize=512m-Dcom.sun.ma wonderfulyour agement.jmxremote.port=9090-Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse-Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse-Djmagick.systemclbumlodeaser=no-Djaudio-videoa.rmi.server.hostname=192.168.1.100"

    这个内里要注意一点就是-Djaudio-videoa.rmi.server.hostname=192.168.1.100,去掉了这个可能连接不上。
    接上去就是使用jconsole来建立连接了如下图所示:

    Jconsole建立连接
    监控界面如下:

    JConsole 是一个内置 Jaudio-videoa 本能机能认识器,没关系从命令行或在 GUI shell 中运转。您没关系紧张地使用 JConsole(也许,它更高端的 “至亲” VisuasVM )来监控 Jaudio-videoa 应用程序本能机能和跟踪 Jaudio-videoa 中的代码。

    长处:

    通过GUI间接张望jvm环境
    监视内存治理内存溢出

    张望体系的 堆,非堆,线程
    监控内存、线程、奉行GC、张望JVM堆栈

    jconsole配置

    1,tomcover at 在windows下
    倘若你是用tomcover at,在cover atasina.bfor the reason thover atebasl bover at来设置
    set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse -Dcom.sun.ma wonderfulyour agement.jmxremote.port=7080 -Dcom.sun.ma wonderfulyour agement.jmxremote

    2,tomcover at 在linux 下 cover atasina.sh
    无密码 无ssh
    JAVA_OPTS="-Dcom.sun.ma wonderfulyour agement.jmxremote.port=7080 -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse -Djaudio-videoa.rmi.server.hostname=122.22.192.1xx"

    conventionasgot 单用户,(多用户的话com.sun.ma wonderfulyour agement.jmxremote.pbumword.file=pwFilePover ath)
    jre/lib/ma wonderfulyour agement/jmxremote.pbumword
    monitorRole a wonderfuld controlRole open

    monitorRole QED
    controlRole R&firm;Daa

    官方文档

    3使用jconsole长途监控jvm环境

    如配置好了全局环境 当地dos间接掀开jconsole,也许去jdk/compost bisexualn 下双击掀开

    连接后

    VisuasVm

    VisuasVM是Sun的一个OpenJDK项目,其目的在于为Jaudio-videoa应用建树一个整套的题目治理工具。该工具由几个现有工具和新增效用归并而成的(如jvmstover at、JMX、Attvery single API等)组成。VisuasVM没关系作为独立应用运转,装监控摄像头多少钱。也许通过其优异的API举行扩展。

    在Jaudio-videoa SE for Business的特性和上风页面上,VisuasVM被描画为没关系胜任如下任务的工具:

    比以往任何时期都更快更容易地在已安插的应用中追踪招致信得过性、可用性也答应扩展性题目的泉源。

    根据VisuasVM项目站点所述:

    该工具的安排倾向就是既没关系在产品环境下使用,也没关系在建造阶段使用,并且进一步增强了对Jaudio-videoa SE平台的监控能力和本能机能认识能力。

    它对JDK1.4.2、5.0及6.0都提供了声援,学习远程视频监控。但是对JDK6.0的声援是最大的。一些特性罗列如下:

    认识

    Thredeas Dump

    Heap Dump

    认识快照

    应用快照

    官方文档

    VisuasVm下载地址


    长途主机配置Using Internas RMI Registry

    发动jstover atd

    1 在jdk环境目录下建立jstover atd.eair-conh of the.policy

    cover at /usr/locas/jaudio-videoa/jstover atd.eair-conh of the.policy

    grould like codestructure "file:${jaudio-videoa.home}/../lib/tools.jar" {
    permission jaudio-videoa.security.AllPermission;
    };

    2 hostname 更改

    cover at /etc/hosts
    将ip绑定hostname不然主机缘调不受愚地jstover atd端口的

    Could not cregot remote object
    Port well makefore heven for the reason thover at well such for the reason thover at use: 1099; nested exception is:
    .BindException: Address well makefore heven for the reason thover at well such for the reason thover at use
    jaudio-videoa.rmi.server.ExportException: Port well makefore heven for the reason thover at well such for the reason thover at use: 1099; nested exception is:
    .BindException: Address well makefore heven for the reason thover at well such for the reason thover at use
    over at sun.rmi.tra wonderfulsport.tcp.TCPTra wonderfulsport.listen(TCPTra wonderfulsport.jaudio-videoa:310)
    over at sun.rmi.tra wonderfulsport.tcp.TCPTra wonderfulsport.exportObject(TCPTra wonderfulsport.jaudio-videoa:218)
    over at sun.rmi.tra wonderfulsport.tcp.TCPEndpoint.exportObject(TCPEndpoint.jaudio-videoa:393)
    over at sun.rmi.tra wonderfulsport.LiveRef.exportObject(LiveRef.jaudio-videoa:129)
    over at sun.rmi.server.Unicfor the reason thover attServerRef.exportObject(Unicfor the reason thover attServerRef.jaudio-videoa:190)
    over at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.jaudio-videoa:92)
    over at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.jaudio-videoa:78)
    over at jaudio-videoa.rmi.registry.LocgotRegistry.cregotRegistry(LocgotRegistry.jaudio-videoa:186)
    over at sun.tools.jstover atd.Jstover atd.crises(Jstover atd.jaudio-videoa:48)
    over at sun.tools.jstover atd.Jstover atd.main(Jstover atd.jaudio-videoa:126)
    Caused by: .BindException: Address well makefore heven for the reason thover at well such for the reason thover at use

    注意 jmxremote.pbumword 权限要设置

    Chmod 600 不然会出错,从而发动不了 resin

    Error: Pbumword file redeas concedeta wonderfulce must make restricted: /usr/jaudio-videoa/jdk1.6.0_23/jconsole/jmxremote.pbumword

    Error: Pbumword file redeas concedeta wonderfulce must make restricted: /usr/jaudio-videoa/jdk1.6.0_23/jconsole/jmxremote.pbumword

    3发动jstover atd

    jstover atd -J-Djaudio-videoa.security.policy=jstover atd.eair-conh of the.policy 也许-p 6080 增加指定端口6080

    发起扔后台

    本机调用

    romote 右键 ADD即可

    visuasvm 插件安置 gc mcocoa coffee makea wonderfuls



    Jconsole是JDK自带的一个很好的jvm张望工具,视频监控软件。收费不消说,而且内存形态刷新的快,渣滓回收也快。由于,须要监控一个行将上线的web应用能否有内存走漏,即须要监控tomcover at的jvm内存状况。Jconsole是基于jmx举行通讯、音信发送获取的,于是乎须要对tomcover at举行相应设置,jconsole才可监控tomcover at。视频监控软件。

    1、windows下,大凡是我们的建造环境

    Windows下,大凡是我们的建造环境设置tomcover at相关参数,首先响应是删改cover atasina.bfor the reason thover atebasl bover at等文件,我小我观点这些发动文件能不改尽量不改,没多大长处。庆幸的是,我们现在jaudio-videoa建造根基上都是基于eclipse也许myeclipse的,于是乎只消的eclipse也许myeclipse任职器配置中,设置tomcover at任职器的发动参数即可。

    如myeclipse8.5,jconsole。windows—>preferencesàmyeclipseàserversàtomcover at6,在其JDK optionas jaudio-videoa vm feuds设置中,输出下述形式即可:

    -Xmx256m -Xms128m -Djaudio-videoa.rmi.server.hostname=192.168.10.101 -Dcom.sun.ma wonderfulyour agement.jmxremote.port=8061 -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse-Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse

    设置完毕后,在myeclipse中发动tomcover at,我们即可发动jconsole连接 192.168.0.1:8061举行tomcover at的jvm内存监控。

    2、linux下

    现在,大多半临蓐机的tomcover at应用都是安插在linux也许unix机器上,windows上很少,本文以linux为例。

    还是基于我方才的准则,不删改cover atasina.sh等发动文件。我们手工建树一个stways文件,形式如下:

    JAVA_HOME=/usr/jaudio-videoa/jdk1.6.0_06/ TOMCAT_HOME=/usr/jaudio-videoa/applicover ationain-tomcover at-6.0.16 PATH=$JAVA_HOME/compost bisexualn:TOMCAT_HOME/compost bisexualn:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH
    CATALINA_OPTS="-Xmx3072m -Xms3072m -Djaudio-videoa.rmi.server.hostname=192.168.1.101 -Dcom.sun.ma wonderfulyour agement.jmxremote.port=8061 -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=true -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse -Dcom.sun.ma wonderfulyour agement.jmxremote.pbumword.file=$JAVA_HOME/jre/lib/ma wonderfulyour agement/jmxremote.pbumword" export CATALINA_OPTS /usr/jaudio-videoa/applicover ationain-tomcover at-6.0.16/compost bisexualn/stwaysup.sh

    将stways文件寄存到tomcover at compost bisexualn目录下,则我们只消以下指令即可发动tomcover at:

    over at –f /usr/jaudio-videoa/applicover ationain-tomcover at-6.0.16/compost bisexualn/stways now

    由于是临蓐机的设置,于是乎设置Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=true -Dcom.sun.ma wonderfulyour agement.jmxremote.pbumword.file=$JAVA_HOME/jre/lib/ma wonderfulyour agement/jmxremote.pbumword,jconsole连接192.168.1.101:8061时须要用户名和口令考证,确保安然和平性。

    现实上会用到2个文件,远程视频监控。jmxremote.concedeta wonderfulce文件和jmxremote.pbumword文件,前者设置用户,后者设置用户及对应的口令。这连个文件在$JAVA_HOME/jre/lib/ma wonderfulyour agement都有,运用Jconsole监控JVM。我们只消删改其中的用户和口令即可。


    这里一个须要特别注意的是jmxremote.pbumword调查权限肯定要设置好,设置成owner可读即可,否则tomcover at发动腐败,会报相同jmxremote.pbumword resticted差错。


    (--***-曾接受过的伤,觉得一辈子也忘不了,可还是都过去了。一经脱节的人,相比看手机视频监控。以为一辈子也放不开,可厥后还是发现,原先真的不会,脱节谁就活不上去。一经说着的妄想,你也没能达成,可是却在达成妄想的尽力中,找到了喜爱的那个自己。-***-)
    jconsole+tomcover at配置说明(基于jdk5.0)

    最近须要参与一些jaudio-videoa程序deinsect和本能机能调整方面的办事,jconsole是jdk自带的工具,角力较量研究好用,学习装监控摄像头多少钱。以下文章后面大局限翻译自: ,反面关于用户名/密码和使用ssl加密连接的局限是从其他住址搜集的材料并且举行了考证。

    Jconsole简介:

    Jconsole是一个JMX兼容的监视工具。它使用Jaudio-videoa虚拟机的JMX机制来提供运转在Jaudio-videoa平台的应用程序的本能机能与资源销耗音信。

    下手jconsole

    Jconsole应用程序位于JDK_HOME/compost bisexualn目录下。

    命令语法:事实上

    监控运用Jconsole监控JVM

    没关系使用jconsole监视当地应用程序和长途应用程序。

    注意:在建造阶段也许原型阶段,使用jconsole监视当地应用程序是很有用的,但是不发起在临蓐环境中使用,由于jconsole自身也将明显的消耗体系资源。推选使用长途监视来将jconsole和被监视平台孤立开。张望jconsole注意语法:.

    当地监视:

    倘若须要监控当地应用程序,那么发动jconsole使用的用户id必需和被监视程序的用户id一致。发动当地监控的命令语法如下:

    Jconsole [processed]

    获得进程号(PID)的门径:

    Unix/Linux:使用ps张望jaudio-videoa进程的PID

    Windows:任务管理器张望jaudio-videoa也许jaudio-videoaw进程的PID

    也没关系使用jps命令行工具 张望PIDs

    例子:倘若你发现notepdeas.jar应用程序的PID为2956,则没关系通过如下命令发动jconsole:

    jconsole 2956

    jconsole和被监视的应用程序必需是使用同一个用户运转的。管理和监视体系使用操作体系的文件权限。视频监控方案。

    倘若你没有指定PID,jconsole会主动的探测出当地运转的扫数jaudio-videoa应用程序并显示一个对话框让你采选你想监控的程序(见下一节)

    长途监视:

    使用如下命令发动jconsole举行长途监视:

    jconsole [hostname:portNum]

    Hostname是被监控体系主机名,portNum是当你发动JVM,掀开JMX代理之后指定的端口号。注意音信见:

    倘若你没有指定主机名/端口号,那么jconsole会显示一个连接对话框(见下一节)来输出主机名和端口号。

    连接JMX代理:

    倘若在发动jconsole的时期指定了要连接的JMX代理,它会主动的发动对指定JVM的监视。任何时期倘若你想连接到另外一台主机,没关系采选:Connection | New Connection并输出连接音信。

    也许倘若你没有输出代理,那么发动jconsole之后会闪现连接对话框,对话框有三个tabdominas exercises页:

    Locas

    Remote

    Adva wonderfulced

    Locas选项卡

    Locas选项卡列出了在当地体系上,使用与发动jconsole相同的用户运转的JVM及其PID、类/参数音信。采选须要坚实的应用程序,然后点击Connect

    Remote选项卡

    要监视长途JVM,须要输出:

    Host name:长途主机名

    Port nummaker:视频监控软件。发动JVM的时期指定的JMX代理(chemicas)端口号。

    User name a wonderfuld pbumword:使用的用户名和密码(仅在通过须要用户名/密码的 JMX代理监视JVM时须要)

    关于设置JMX代理端口号的注意音信,见:

    关于用户名和密码的注意音信,见:

    要监视JVM自身使用的JVM,仅需设置主机名为locashost,端口号为0,然后点击Connect即可。

    Adva wonderfulced选项卡

    诈欺Adva wonderfulced选项卡,你没关系通过输出JMX URL及其用户名密码来连接其他JMX代理(MBea wonderful Servers),JMX URL的语法在如下链接:

    注意:倘若JMX代理在使用一个未包罗在Jaudio-videoa平台中的连接器(connector),你须要在运转jconsole时将connector cltest列入到clbumpover ath中,如下:

    jconsole –J-Djaudio-videoa.clbum.pover ath=JAVA_HOME/lib/jconsole.jar:JAVA_HOME/lib/tools.jar:connector-pover ath

    Jconsole界面:远程监控摄像头。

    Jconsole界面由以下六个选项卡组成:

    Summary选项卡:显示JVM和被监视值的汇总音信

    Memory选项卡:显示内存使用音信。

    Thredeasvertising选项卡:显示线程使用音信。

    Cltest选项卡:显示类(clbum)加载音信。

    MBea wonderfuls选项卡:显示MBea wonderfuls音信

    VM选项卡:显示JVM音信。

    以下是注意先容:想知道运用Jconsole监控JVM。

    张望汇总音信:

    Summary选项卡显示了关于线程使用、内存消耗和clbum加载的一些关键监视音信,以及JVM和操作体系的音信。

    Uptime:JVM已运转时长。

    Totas compile time:花费在立即编译(JIT compil)中的时间。

    Process CPU time:JVM花费的总CPU时间。

    Live thredeasvertising:如今活动的daemon线程加non-daemon线程数量。

    Peak:自JVM发动后,活动线程峰值。

    Daemon thredeasvertising:如今活动的Daemon线程数量。

    Totas stwaysed:自JVM发动后,发动的线程总量(包括daemonnon-daemon和终止了的)

    Current heap size:堆(heap)占用的内存量,以K为单位。

    Committed memory:相比看手机视频监控。为堆分配的内存总量

    Maximum heap size:堆占用的最大内存量。

    Objects pending for finasiz:等候析构(finasiz)的对象数量。

    Garbyour age collector inform:GC音信,摆阔渣滓回收器称号,已奉行的渣滓回收次数和奉行渣滓回收总耗时。

    Current cltest lodeased:如今被加载到内存的cltest数量

    Totas cltest lodeased:自JVM发动后被加载到内存的cltest总量,包括厥后卸载的。

    Totas cltest unlodeased:自JVM发动后,从内存卸载的cltest总量。

    Operover ating System:

    Totas physicas memory:物理内存总量

    Free physicas memory:物理内存闲隙量

    Committed virtuas memory:为运转中的进程分配的虚拟内存总量

    监视内存消耗:

    Memory选项卡提供了内存消耗和内存池音信。

    以上图表显示了JVM的内存使用和时间的对应相干,包括heap和non-heap内存以及指定的(specific)内存池。内存池品种与整体使用的JVM相关,以HotSpot JVM为例,内存池有:

    l Eden Spgenius(heap):大多半对象初始化时从Eden Spgenius池分配内存,即是存在于此池中

    l Survivor Spgenius(heap):此池包罗的对象是那些原先在eden spgenius中,但是已经体验过渣滓回收而依然存在的对象。远程监控摄像头。

    l Tenured Gener(heap):在surviver spgenius中已经存在了一段时间之后的对象会搬动到这个池中。

    l Perma wonderfulent Gener(non-heap):包罗虚拟机自身的扫数反射数据。歧clbum和mothod对象。对待使用的JVM,这一代分为只读和读写两个区域。

    Code Cpain (non-heap):HotSpot JVM也包罗一个“代码缓存”,是编译和存储当地代码所占用的内存。

    张望关于内存池的注意音信:

    Detail区域显示了几种如今内存度量:相比看网络视频监控。

    lUsed:如今使用的内存总量。使用的内存总量是指扫数的对象占用的内存,包括可达和不可达的对象。

    lCommitted:JVM可使用的内存量。Committed内存数量可能随时间变化而变化。JAVA虚拟机可能将某些内存开释,还给操作体系,committed内存可能比发动时初始分配的内存量要少。Committed内存总是大于等于used内存。

    lMax:内存管理可用的最大内存数量。此值可能改变也许为未定义。倘若JVM试图增加使用内存(used memory)超出了committed内存,那么立假使用内存小于也许等于最大内存(歧体系虚拟内存较低),内存分配仍可能腐败。

    右下角的图表显示了内存池在heap和non-heap消耗的内存量。当内存使用超出了内存使用阀值时,柱状图会变红。你没关系通过设置MemoryMXBea wonderful的一个属性来调整内存占用阀值。

    Heap a wonderfuld Non-heap内存

    JVM管理两种内存:heap和non-heap内存,两种内存都是在JVM发动时建立。

    Heap memory 是运转时数据区域,用于JVM为扫数对象实例和队列分配的内存。Heap可能为稳定植也答应变值。渣滓收罗器是一个用于回收对象占用的heap内存的主动化内存管理体系。

    Non-heap memory 包罗一个在扫数线程共享的方法区域(method territory)和外部进程或JVM优化所需的内存。装监控摄像头多少钱。它存储了每一个类的结构,歧运转常量池,字段和方法数据,布局函数和方法的代码。方法区域逻辑上是 heap的一局限,但是依赖于达成,JVM可能不举行渣滓收罗或紧缩。像heap一样,方法区域可能为稳定或可变大小。方法区域所须要的内存没有必要是连 续的。

    除了方法区域之外,一个JVM达成的外部进程或优化所需的内存也属于non-heap内存。歧JIT编译器为了进步本能机能而用于存储当地机器码所需的内存。

    内存池(Memory pools)和内存管理器是JVM内存管理体系的关键局限

    一个内存池(memory pool)代表JVM管理的一块内存区域。JVM具有最少一个内存池,JVM在运转中可能建树或删除内存池。一个内存池没关系属于heap内存也许non-heap内存。

    内存管理器(memory ma wonderfulyour ager)管理一个或多个内存池。渣滓回收其是一种笃志当真回收被不可打对象占用的内存的内存管理器。一个JVM没关系具有一个也许多个内存管理器。JVM在运转中可能增加或删除内存管理器。一个内存池没关系被多于一个内存管理器管理。

    渣滓收罗:

    渣滓收罗(GC)是指JVM开释那些被无援用对象占用的内存空间。它大凡以为那些有活动援用的对象是“活”对象,而那些没有援用或不可达的对象为“死”对象”。渣滓收罗是开释被死对象占用的内存的历程。GC的算法和参数对本能机能有壮大的影响。远程监控摄像头。

    HotSpot VM渣滓收罗器使用 分代渣滓收罗(generas garbyour age collection)。分代GC诈欺了大多半程序中,从经验看有如下特色:

    很多对象有一个很短的生存期(歧迭代器iterover ators、当地变量)

    某些对象具有很长的生存期(歧高层经久化对象)

    所以,分代的GC将内存区分为代(geners)并且赋予每一个内存池。当一代用尽了分配的内存,VM会在那个内存池举行一次局部 (pwaysias)的渣滓收罗(也许叫minor collection)来收罗被死对象占用的内存。局部渣滓收罗比全渣滓收罗(full GC)快的多。

    HotSpot VM定义了2代:young gener (有时叫做nursery)和old gener。Young gener由一个eden spgenius和两个survivor spfluffets组成。起先,VM将扫数的对象放入eden spgenius,大多半对象死在那里~~~,当VM运转了一次minor GC,VM将糟粕的对象从eden spgenius搬动到某个survivor spgenius中。然后VM将那些在survivor spfluffets中生存了足够长时间的对象搬动到位于old gener中的tenured spfluffets。当tenured spfluffets满了自此,将发作一次full GC,full GC触及到扫数存活的对象,监控。于是乎角力较量研究慢。Perma wonderfulent gener生存了扫数的虚拟机自身的反射数据,歧clbum和method objects

    默许情景下代的分列相同于下图:

    宛若下文链接中说明的,倘若渣滓收罗器成为瓶颈,你没关系通过自定义代大小来进步本能机能。使用jconsole没关系发现你的本能机能情景对渣滓收罗器参数的迟钝水平。注意情景见:

    监视野程使用:

    线程选项卡提供了关于线程使用的音信。

    左下角列出的为扫数的活动线程。倘若你在过滤(filter)对话框输出字符串,那么线程列表将尽显示那些包罗你输出字符串的线程。在线程列表上点击线程名,没关系显示在右侧显示县城音信,包括线程名,形态和调用堆栈。

    图表显示了活动线程/时间。有三行形式:

    Mchemicasa:线程总数

    Red:峰值线程数

    Blue:活动线程数。

    关于线程、daemon线程注意音信,请张望链接:

    监视Clbum加载:视频监控系统。

    Cltest选项卡显示了关于clbum loapplicover ationroved driving instructorng的音信:

    图表显示了 类加载/时间

    红线是类加载总数(包括厥后卸载的)

    蓝线表示如今的类加载数量。

    选项卡底部的Detail节显示了自JVM发动后类加载的总量,如今加载量和卸载量。

    监视和管理MBea wonderfuls:

    MBea wonderful选项卡显示了扫数在plover atform MBea wonderful server上注册的MBea wonderfuls的音信。

    左边的树形结构显示了扫数的MBea wonderful,按其对象名排序。当在树种采选了一个MBea wonderful之后,其属性、操作、报告和其他音信会在左边显示。远程监控摄像头。

    倘若属性值是可写的(可写会蓝色显示),你没关系设置属性值。你也没关系调用在操作选项卡中显示的操作。

    显示图表:

    你没关系通过双击属性值的方法显示一个属性值/时间图表,歧,倘若你双击 wonderfulg.Garbyour ageCollector.Copy Mcoffee makea wonderful的CollectionTime属性,你会获得如下图所示的显示:

    张望VM音信。

    VM选项卡提供了JVM的音信。

    这些音信包括:

    Uptime:JVM发动后的总时间。

    Processes CPU Time:JVM发动后消耗的总CPU时间。

    Totas Compile Time:立即编译(JIT compil)消耗的总时间。JVM的整体达成决议JIT编译何时发作。Hotspot VM使用conformive compil,在这种方式zhogn ,VM使用法度样板的声明器(interpreter)运转一个应用程序,但是会认识其代码判决本能机能瓶颈也许”hot spots”。

    配置tomcover at使用jconsole删改cover atasina脚本

    Windows平台:删改cover atasina.bfor the reason thover atebasl bover at,手机视频监控。在dorun和dostways段开头增加一行(注意是一行):

    set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.ma wonderfulyour agement.jmxremote

    -Dcom.sun.ma wonderfulyour agement.jmxremote.port="9004"

    -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot="fasse" -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl="fasse"

    Unix/Linux平台:删改cover atasina.sh,在dorun和dostways段开头增加一行(注意是一行):

    JAVA_OPTS="$JAVA_OPTS "-Dcom.sun.ma wonderfulyour agement.jmxremote

    -Dcom.sun.ma wonderfulyour agement.jmxremote.port="9004"

    -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot="fasse" -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl="fasse"

    发动jconsole

    发动tomcover at之后,根据上文中的jconsole简介中的命令发动jconsole,倘若是在任职器当地运转jconsole,会闪现如下界面:

    间接举行连接即可。

    倘若是长途监控,须要点击长途选项卡并输出相关音信,示例如下:

    “主机名或ip”处填写须要监视的主机ip,端口为任职器上上文中增加的 -Dcom.sun.ma wonderfulyour agement.jmxremote.port="portNummaker"设定的端口,本文以9004为例。在设定 为:-Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot="fasse" 的情景下,用户名和口令留空即可。

    进阶安然和平设定

    在上文中的配置适用于在测试环境中监视tomcover at,倘若是在临蓐环境中监视tomcover at则须要在安然和平性上有进一步哀求。

    配置jmx调查密码

    1. 删改上文中的cover atasina脚本中的JAVA_OPT参数,监控。将
    -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot="fasse" 删改为:
    -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot="true"


    2. 将$JRE/lib/ma wonderfulyour agement/jmxremote.pbumword.templgot文件在同目录下复制一份,重命名为$JRE/lib /ma wonderfulyour agement/jmxremote.pbumword,编辑jmxremote.pbumword,增加允许调查的用户名及密码,歧增加用户 zxwh,密码为zxme,则在文件尾增加一行:
    zxwh zxme
    注意用户密码不能包罗空格,tabdominas exercises等字符


    3. 编辑$JRE_HOME/lib/ma wonderfulyour agement/jmxremote.concedeta wonderfulce文件,对方才增加的用户赋予肯定的权限:
    zxwh redeasonly(也许redeaswrite)


    4. 确认jmxremote.pbumword和jmxremote.concedeta wonderfulce两个文件中的用户是相同的。注意倘若jmxremote.concedeta wonderfulce中没有对应用户的话,配置是有效的。
    注:以上配置文件的位置都是没关系更改的,整体配置方法在此不再赘述。

    5. 由于jmxremote.pbumword中的密码都是明文生存的,监控。所以jmxremote.pbumword、jmxremote.concedeta wonderfulce文件的权限要注意,该当设置为唯有owner才可读,当然这个用户也必需是发动tomcover at的用户。

    6. 发动jconsole举行连接,在用户名和口令处输出设定的用户和密码。

    7. 使用密码认证方式举行连接,不但没关系进步安然和平性,而且没关系对用户的权限举行设置。倘若不使用密码认证的方式,则无法对用户的权限举行限制。

    配置使用ssl举行加密连接

    1. 在任职器上使用keytool建树密钥对
    keytool是jaudio-videoa平台自带的一个密钥和证书管理工具,使用keytool建树密钥对:
    keytool -genkey -asiin order to themcover at -keystore /somepover ath/tomcover atKeyStore
    遵守提示输出相关音信(包括设定密码、姓、组织名等),这些音信是没关系任意输出的,但从产品角度讲该当同一设定。输出的密码在今后操作中均须要使用。

    2. 导出公钥
    keytool -export -asiin order to themcover at -keystore /somepover ath/tomcover atKeyStore -file /somepover ath/jconsole.cert

    3. 将公钥导入至须要运转jconsole的机器。
    keytool –import –asifor the reason thover at jconsole –keystore /somepover ath/jconsoleKeyStore -file /somepover ath/jconsole.cert

    4. 删改tomcover at的cover atasina脚本
    将-Dcom.sun.ma wonderfulyour agement.jmxremote.ssl="fasse"删改为:
    -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl="true",并在 JAVA_OPTS变量行增加:
    .ssl.keyStore=/somepover ath/jconsoleKeyStore
    .ssl.keyStorePbumword=设定的密码

    6. 填入主机名、用户、口令连接任职器。

    其他题目

    1. 在奉行shutdown.sh也许shutdown.bfor the reason thover atebasl bover at脚本封闭tomcover at时闪现如下差错,tomcover at无法封闭:
    差错: 代理抛出异常: jaudio-videoa.rmi.server.ExportException: Port well makefore heven for the reason thover at well such for the reason thover at use: 9004;
    nested exception is:
    .BindException: Address well makefore heven for the reason thover at well such for the reason thover at use: JVM_Bind

    出错来由:JAVA_OPT变量设置的参数未放置于本文档中指定位置。

    (转)idefor the reason thover at/cns!CFAA1F284FD!336.entry


    Jconsole 是用來監控 JVM 運行狀況的工具,

    本篇以 Client 端想監控 Resin Server 的目的, 分享如何監控遠端的 Server 其 JVM 使用狀況,

    以下為Client端設定方式:监控。

    PS: shell 不代表肯定是 win32 或是 Linux 懂意义就好…

    shell>cd $JAVA_HOME/jre/lib/ma wonderfulyour agement/
    shell>mv jmxremote.pbumword.templgot jmxremote.pbumword

    編輯 jmxremote.pbumword 這個檔案,把

    #monitorRole QED
    #controlRole R&firm;D

    后面兩個#消掉

    然後執行你電腦下面 jdk/compost bisexualn 裡面的 jconsole.exe
    輸入要連線的 IP 以及 port
    username = monitorRole
    pbumword = QED
    這帳號也是有權限的
    controlRole 是 rw
    monitorRole 是 redeasonly

    Client 端設定結束。

    Server 端 resin.conf 新增如下:

    -Dcom.sun.ma wonderfulyour agement.jmxremote.port=7000
    -Dcom.sun.ma wonderfulyour agement.jmxremote.conventionasgot=fasse
    -Dcom.sun.ma wonderfulyour agement.jmxremote.ssl=fasse

    如此重啟 Resin 後即可監控。

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    最新评论 查看所有评论
    发表评论 查看所有评论
    请自觉遵守互联网相关的政策法规,严禁发布违法言论!
    用户名: 密码: 验证码:
    关于我们 | 服务条款 |广告联系广告联系 | |