Java监控工具、调优、调试辅助函数

JVM监控工具

Java的安装包自带了很多优秀的工具,善用这些工具对于监控和调试Java程序非常有帮助。常用工具如下:

jps

用途:jps用来查看JVM里面所有进程的具体状态,包括进程ID,进程启动的路径等等。

常用参数:

-l: 输出完成的包名称;

-m: 输出程序的命令行输入参数;

-v: 输出完整的JVM参数。

jstack

用途:1)查看java程序崩溃生成core文件,获得core文件的javastack和nativestack的信息;2)查看正在运行的java程序的javastack和nativestack的信息:a) 查看运行的java程序呈现hung的状态;b) 跟踪Java的调用栈,剖析程序。

jinfo

用途:jinfo可观察运行中的java程序的运行环境参数:参数包括JavaSystem属性和JVM命令行参数;也可从core文件里面知道崩溃的Java应用程序的配置信息。

jstat

用途:jstat利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heapsize和垃圾回收状况的监控等等。

语法结构:

Usage:jstat-help|-options

jstat-<option>[-t][-h<lines>]<vmid>[<interval>[<count>]]

参数解释:

Options—选项,我们一般使用-gcutil查看gc情况

vmid—VM的进程号,即当前运行的java进程号

interval–间隔时间,单位为秒或者毫秒

count—打印次数,如果缺省则打印无数次

具体option参数如下:

-class:统计classloader行为信息

-compile:统计编译行为信息

-gc:统计jdkgc时heap信息

-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况

-gccause:统计gc的情况,(同-gcutil)和引起gc的事件

-gcnew:统计gc时,新生代的情况

-gcnewcapacity:统计gc时,新生代heap容量

-gcold:统计gc时,老年区的情况

-gcoldcapacity:统计gc时,老年区heap容量

-gcpermcapacity:统计gc时,permanent区heap容量

-gcutil:统计gc时,heap情况

输出内容含义如下:

S0—Heap上的Survivorspace0区已使用空间的百分比

S1—Heap上的Survivorspace1区已使用空间的百分比

E—Heap上的Edenspace区已使用空间的百分比

O—Heap上的Oldspace区已使用空间的百分比

P—Permspace区已使用空间的百分比

YGC—从应用程序启动到采样时发生YoungGC的次数

YGCT–从应用程序启动到采样时YoungGC所用的时间(单位秒)

FGC—从应用程序启动到采样时发生FullGC的次数

FGCT–从应用程序启动到采样时FullGC所用的时间(单位秒)

GCT—从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

示例

实例使用1:

[root@localhostbin]#jstat-gcutil25444

S0S1EOPYGCYGCTFGCFGCTGCT

11.630.0056.4666.9298.491620.24860.3310.579

实例使用2:

[root@localhostbin]#jstat-gcutil2544410005

S0S1EOPYGCYGCTFGCFGCTGCT

73.540.0099.0467.5298.491660.25260.3310.583

73.540.0099.0467.5298.491660.25260.3310.583

73.540.0099.0467.5298.491660.25260.3310.583

孑然一身,隐入苍茫自然,自有一种孤独的意味;旅行,

Java监控工具、调优、调试辅助函数

相关文章:

你感兴趣的文章:

标签云: