1,linux命令
(1)uptime
![]()
系统时间 ,运行时间 (例子中为7分钟) ,连接数 (每一个终端算一个连接) ,1,5,15分钟内的系统平均负载 (运行队列中的平均进程数)
(2)top
![]()
(3)vmstat
可以统计系统的CPU,内存,swap,io等情况 (1,4分别代表采样频率和采样次数)
![]()
CPU占用率很高,上下文切换频繁,说明系统有线程正在频繁切换
(4)pidstat
可以细致观察进程
需要安装 : sudo apt-get install sysstat
监控CPU , 监控IO , 监控内存
使用示例:一,系统性能监控
确定系统运行的整体状态,基本定位问题![]()
(1)任务管理器![]()
(2)Perfmon: Windows自带多功能性能监控工具
、
添加计数器:
![]()
以报告的形式展示:2,windows图形化监控工具
(3) Process Explorer![]()
3,windows命令(1)pslist命令行工具可用于自动化数据收集显示java程序的运行情况
![](https://i-blog.csdnimg.cn/blog_migrate/337b7174fed8ad388271620ee33448f0.png)
二,Java自带的工具
三,JAVA图形化监控工具
四,实战分析
![](https://i-blog.csdnimg.cn/blog_migrate/495b5f7618d88f30307992e31910656a.png)
1,jps
(1)列出java进程,类似于ps命令
(2)参数-q可以指定jps只输出进程ID ,不输出类的短名称
(3)参数-m可以用于输出传递给Java进程(主函数)的参数
(4)参数-l可以用于输出主函数的完整路径
(5)参数-v可以显示传递给JVM的参数
使用示例:
![](https://i-blog.csdnimg.cn/blog_migrate/2cf33a36940ab250e0fa6800c2a501e0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/70008100cc01aa6d0f6ca27cdf48f5fc.png)
2,jinfo
(1)可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
(2)-flag <name>:打印指定JVM的参数值
(3)-flag [+|-]<name>:设置指定JVM参数的布尔值
(4)-flag <name>=<value>:设置指定JVM参数的值
使用示例:
![](https://i-blog.csdnimg.cn/blog_migrate/bceb3fbc2c7ac69fe3a6c2f0f1a7b4ec.png)
3,jmap
(1)生成Java应用程序的堆快照和对象的统计信息
(2)jmap -histo 2972 >c:\s.txt
![](https://i-blog.csdnimg.cn/blog_migrate/d9f36da30fd684d8fad89a69e091b154.png)
使用示例:
Dump
堆:
–
jmap
-
dump:format
=
b,file
=c:\heap.hprof
2972
![](https://i-blog.csdnimg.cn/blog_migrate/9325113cb93f44ef95d3afd31013cb57.png)
4,jstack
(1)打印线程dump
(2)-l 打印锁信息
(3)-m 打印java和native的帧信息
(4)-F 强制dump,当jstack没有响应时使用
使用示例:
![](https://i-blog.csdnimg.cn/blog_migrate/0a84e94e4f752be06f8d86e83ce0d943.png)
1,JConsole
(1)图形化监控工具
(2)可以查看Java应用程序的运行概况,监控堆信息、永久区使用情况、类加载情况等
界面展示:
![](https://i-blog.csdnimg.cn/blog_migrate/0e317035bf78da2f2835bba1b459a978.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9369ab8c8c49291f67f9f9d9798338fa.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7fd29a7f55d752ede3585fc80769995b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e2de7007c93b664de1edd82d7973fb1c.png)
2,Visual VM
Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具
界面展示:
![](https://i-blog.csdnimg.cn/blog_migrate/11d0b91f2020b3393b5e7d00c80504a1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b63e8000c2ec366cac452a48303f8edd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a229987e6acfda15035ce839061a7e45.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a56efcbd0f8af6fda5c0adcb4398d133.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5a4d09d46fd4dd04c84922b52bf7f8bd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/df34ecde94425c9879d67a612a719335.png)
![](https://i-blog.csdnimg.cn/blog_migrate/949bb067ce014a5b9acead40b6ede570.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ab0fd96c2cb102887f5661a0805033ae.png)
![](https://i-blog.csdnimg.cn/blog_migrate/111d53550a238396736b8e9e4ac7ef65.png)
死锁分析:
![](https://i-blog.csdnimg.cn/blog_migrate/38fc5a8bef485dd53b7f84ae7dd31ad2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/96b721dfa55c9c414b58695132d194da.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aa94de56e04c25bf9aa392ef29093ef8.png)