jvm系列--监控工具

在linux环境下

一.uptime

系统时间,运行时间

连接数:

每一个终端算一个连接

1,5,15分钟内的系统平均负载 

运行队列中的平均进程数 

二.vmstat

可以统计系统的CPU,内存,swap,io等情况

vmstat 1 4

三.top

cpu内存

每个进程占CPU情况

四.pidstat

监控CPU,IO,内存

-p 指定进程 –u 监控CPU 每秒采样 一共3次 -t 显示线程

TID 线程id   CPU哪个核

五.windows

任务管理器:cpu ,io

perfmon

pslist:显示java程序的运行情况

六.java自带工具

1.jps

列出java进程, -q 只输出进程id  -m 输出Java进程(主函数)的参数  -l 可以用于输出主函数的完整路径  -v可以显示传递给JVM的参数

2.jinfo

查看java应用程序的扩展参数

-flag <name>:打印指定JVM的参数值
-flag [+|-]<name>:设置指定JVM参数的布尔值
-flag <name>=<value>:设置指定JVM参数的值 

jinfo -flag PrintGCDetails 2972

3.jmap

生成java应用程序的堆快照和对象的统计信息

4.jstack

打印线程dump

-l 打印锁信息 -m 打印java和native的帧信息 -F强制dump,当jstack没有响应时候使用

5.JConsole

图形化监控工具

可以查看Java应用程序的运行概况,监控堆信息、永久区使用情况、类加载情况等 

6.Visual VM

Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具 

七.例子

运行一程序ThreadBlockMain,期望输出Hello,World ,结果在程序运行后,程序卡死,没有预期输出。 

1.jps 查看程序进程

2.jstack 输出dump

3.top 查看占用cpu最多的进程id

4.pidstat 查看进程id下线程占用cpu 最多 ,TID线程id转换成16进制 ,nid

5.jstack 进程id  输出信息,查找nid,定位问题

猜你喜欢

转载自blog.csdn.net/qq_19968255/article/details/81112032