1. 首页
  2. 技术分享

Jvm知识学习(七)-性能监控工具

1,linux命令
(1)uptime
Jvm知识学习(七)-性能监控工具
系统时间 ,运行时间 (例子中为7分钟) ,连接数 (每一个终端算一个连接) ,1,5,15分钟内的系统平均负载 (运行队列中的平均进程数) 
(2)top
Jvm知识学习(七)-性能监控工具
(3)vmstat
可以统计系统的CPU,内存,swap,io等情况 (1,4分别代表采样频率和采样次数)
       Jvm知识学习(七)-性能监控工具
CPU占用率很高,上下文切换频繁,说明系统有线程正在频繁切换
(4)pidstat
可以细致观察进程
需要安装 :sudo apt-get install sysstat 
监控CPU ,监控IO ,监控内存
使用示例:

一,系统性能监控
确定系统运行的整体状态,基本定位问题
Jvm知识学习(七)-性能监控工具
   Jvm知识学习(七)-性能监控工具

(1)任务管理器
Jvm知识学习(七)-性能监控工具
(2)Perfmon:Windows自带多功能性能监控工具 
Jvm知识学习(七)-性能监控工具
添加计数器:
 Jvm知识学习(七)-性能监控工具
以报告的形式展示:

2,windows图形化监控工具
 Jvm知识学习(七)-性能监控工具

(3)Process Explorer


Jvm知识学习(七)-性能监控工具 

   3,windows命令

  (1)pslist

      命令行工具  

      可用于自动化数据收集  

      显示java程序的运行情况

Jvm知识学习(七)-性能监控工具

二,Java自带的工具

Jvm知识学习(七)-性能监控工具
1,jps
(1)列出java进程,类似于ps命令
(2)参数-q可以指定jps只输出进程ID ,不输出类的短名称
(3)参数-m可以用于输出传递给Java进程(主函数)的参数
(4)参数-l可以用于输出主函数的完整路径
(5)参数-v可以显示传递给JVM的参数
使用示例:
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
2,jinfo
(1)可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
(2)-flag <name>:打印指定JVM的参数值
(3)-flag [+|-]<name>:设置指定JVM参数的布尔值
(4)-flag <name>=<value>:设置指定JVM参数的值
使用示例:
Jvm知识学习(七)-性能监控工具
3,jmap
(1)生成Java应用程序的堆快照和对象的统计信息
(2)jmap -histo 2972 >c:/s.txt
Jvm知识学习(七)-性能监控工具
使用示例:
Dumpjmap dump:format=b,file=c:/heap.hprof 2972
Jvm知识学习(七)-性能监控工具
4,jstack
(1)打印线程dump
(2)-l 打印锁信息
(3)-m 打印java和native的帧信息
(4)-F 强制dump,当jstack没有响应时使用
使用示例:
Jvm知识学习(七)-性能监控工具

三,JAVA图形化监控工具

1,JConsole
(1)图形化监控工具
(2)可以查看Java应用程序的运行概况,监控堆信息、永久区使用情况、类加载情况等
界面展示:
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
2,Visual VM
Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具

界面展示:
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具

四,实战分析

Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
死锁分析:
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具
Jvm知识学习(七)-性能监控工具

本文来自TCloud,如若转载,请注明出处:https://www.tcloud.io/2230.html

全行业托管云平台,助力千万业务轻松上云