JAVA从入门到基础(八) 一性能监控工具
JAVA从入门到基础(八) 一性能监控工具
一系统性能监控–linux
- uptime,此命令会显示以下内容
- 系统时间
- 系统运行时间,表示从开机到现在为止的运行时间,如图表示开机1分钟。
- 连接数,每一个终端算一个连接,如图表示一个User。
- 分别为1,5,15分钟内的系统平均负载,运行队列中的平均进程数,如图表示1,5,15平均进程数分别为3.5,1.06,0.37。
-
top 命令
- 第一行与uptime相似。
- 可以显示CPU与内存情况。
- 显示表格内所有进程情况,显示CPU与内存占用率。
-
vmstat,–可以统计系统的CPU,内存,swap,io等情况
-
pidstat ,细致观察进程
–需要安装 sudo apt-get install sysstat
可以监控CPU
可以监控IO
可以监控内存
使用方式 pidstat -p 指定进程–u 监控CPU 每秒采样 采样次数,如pidstat -p 2962 -u 1 3则表示对2962进程CPU进行监控,每秒采样一次,共采样3次。
pidstat -t 显示进程
二 系统性能监控 - windows
-
任务管理器
-
Perfmon,–Windows自带多功能性能监控工具,在命令行输入Perfmon即可打开页面
-
Process Explorer
-
pslist
命令行工具
可用于自动化数据收集
显示java程序的运行情况
三 JAVA自带的工具
-
jps
- 列出java进程,类似于ps命令
- 参数-q可以指定jps只输出进程ID ,不输出类的短名称
- 参数-m可以用于输出传递给Java进程(主函数)的参数
- 参数-l可以用于输出主函数的完整路径
- 参数-v可以显示传递给JVM的参数
-
jinfo
可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
flag :打印指定JVM的参数值
flag [+|-]:设置指定JVM参数的布尔值
flag =:设置指定JVM参数的值
显示了新生代对象晋升到老年代对象的最大年龄,jinfo-flag MaxTenuringThreshold 2972-XX:MaxTenuringThreshold=15
显示是否打印GC详细信息jinfo-flag PrintGCDetails 2972-XX:-PrintGCDetails
运行时修改参数,控制是否输出GC日志jinfo-flag PrintGCDetails 2972-XX:-PrintGCDetails
jinfo-flag +PrintGCDetails 2972 jinfo-flag PrintGCDetails 2972 -XX:+PrintGCDetails
-
jmap
- 生成Java应用程序的堆快照和对象的统计信息
- jmap -histo 2972 >c:\s.txt
- Dump堆
- –jmap -dump:format=b,file=c:\heap.hprof 2972
- jstack
- 打印线程dump
- -l打印锁信息
- m 打印java和native的帧信息
- -F 强制dump,当jstack没有响应时使用
- JConsole
- 图形化监控工具
- 可以查看Java应用程序的运行概况,监控堆信息、永久区使用情况、类加载情况等
- Visual VM
- Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具