加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据处理---JVM监控

发布时间:2020-12-14 02:13:35 所属栏目:大数据 来源:网络整理
导读:监控,就是要监视控制,既要监视出问题,也要能随时控制调整。下面来说说JVM监控的常用工具(JDK/bin自带提供了很多)和方法。 1 .?jinfo jinfo -h 可以知道使用的参数有: jinfo [option] pid to connect to running process jinfo [option] executable core

监控,就是要监视控制,既要监视出问题,也要能随时控制调整。下面来说说JVM监控的常用工具(JDK/bin自带提供了很多)和方法。

1 .?jinfo

jinfo -h 可以知道使用的参数有:

jinfo [option] <pid>
to connect to running process
jinfo [option] <executable core>
to connect a core file
jinfo [option] [service_id@]<remote server IP or hostname>
to connect ?to remote debug server

可以看出主要支持的方式是本地pid、core file(如果java程序崩溃生成core文件,jstack工具可以用来获得core文件)和远程server的方式,下面很多都类似,不再说明。

运行一个试试:

jinfo -flags 4520 > info.txt

Attaching to process ID 4520,please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.60-b23
Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=67108864 -XX:MaxHeapSize=536870912 -XX:MaxNewSize=178782208 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=22020096 -XX:OldSize=45088768 -XX:ThreadStackSize=192 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC?
Command line: ?-Djava.endorsed.dirs=D:Toolsspringsourcevfabric-tc-server-developer-2.6.1.RELEASEtomcat-7.0.20.B.RELEASEcommonendorsed -Dcatalina.base=D:Toolsspringsourcevfabric-tc-server-developer-2.6.1.RELEASEdss-server -Dcatalina.home=D:Toolsspringsourcevfabric-tc-server-developer-2.6.1.RELEASEtomcat-7.0.20.B.RELEASE -Djava.io.tmpdir=D:Toolsspringsourcevfabric-tc-server-developer-2.6.1.RELEASEdss-servertemp -Djava.util.logging.manager=com.springsource.tcserver.serviceability.logging.TcServerLogManager -Djava.util.logging.config.file=D:Toolsspringsourcevfabric-tc-server-developer-2.6.1.RELEASEdss-serverconflogging.properties -Dwrapper.dump.port=-1 -Xmx512M -Xss192K -Djava.library.path=D:Toolsspringsourcevfabric-tc-server-developer-2.6.1.RELEASEdss-serverbinwinx86_64 -Dwrapper.key=Ba7mt23RCGfW789b -Dwrapper.port=32000 -Dwrapper.jvm.port.min=31000 -Dwrapper.jvm.port.max=31999 -Dwrapper.pid=2240 -Dwrapper.version=3.2.3 -Dwrapper.native_library=wrapper -Dwrapper.service=TRUE -Dwrapper.cpu.timeout=5 -Dwrapper.jvmid=2

当然也可以改变运行时的java 进程的opts,就是控制。


2. jmap?

观察运行中的jvm物理内存的占用情况。?如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。

jmap -h 可以看到主要的参数,这里举几个例子:

jmap -heap pid
jmap -dump:format=b,file=heap.bin <pid>
dump文件可以通过MemoryAnalyzer等其他分析工具查看,可以查看dump时对象数量,内存占用,线程情况等。
jmap -dump:live


3.?jstack

观察jvm中当前所有线程的运行情况和线程当前状态

如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息,如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

jstack pid


4. jstat


? ? ? ?JVM监测工具(Java Virtual Machine Statistics Monitoring Tool)。利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括各种堆和非堆的大小及其内存使用量、classloader、compiler、垃圾回收状况等。

Usage: jstat -help|-options
? ? ? ?jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]


5.?jvisualvm.exe

很明显这是一个可视化的工具

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读