3) vmstat : 统计CPU内存使用情况,swap使用情况,可指定周期性采样和次数
4) iostat : 提供详尽的I/O信息,可指定周期性采样和次数
6) pidstat : 监测进程和线程的情况,
监测CPU : 可以配合 jstack -l $ThreadId 察看进程堆栈
I/O使用监控
内存监控
6.2 Windows工具
1) 任务管理器
2) perfmon性能检测工具 : 可以针对一个进程进行监控
3) Process Explorer : 需安装
4) pslist : 需安装
6.3 JDK命令行工具
1) jps : 类似Linux下的ps,用于列出Java进程,-m(主函数的参数),-l(主函数路径),-v(显示JVM参数)
2) jstat : 观察Java应用程序运行时的信息
3) jinfo : 察看Java应用程序的扩展参数(JVM参数),可通过此命令来查看默认参数值,可修改参数
4) jmap : 生成堆快照和对象的统计信息
5) jhat : 分析Java应用程序的对快照内容,可在浏览器中访问http://127.0.0.1:7000
6) jstack : 导出Java应用车功能需的线程堆栈
7) jstatd : RMI的服务端程序,建立远程监控通信,需要使用java的安全策略在使用
8) hprof : 非独立监控工具,用于监测Java程序的CPUh和堆信息,监控函数运行时间,导出程序堆内容
6.4 JConsole工具 : %javahome%/bin/jconsole.exe
1) JConsole连接Java程序 : 添加启动参数可远程连接
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=fals -Dcom.sun.management.jmxremote.port=9988 -Dcom.sun.management.jmxremote
2) Java程序概况 : 可查看堆内存,系统线程数量,加载类数量和CPU使用率
3) 内存监控 : 察看内存详细信息,细化到eden,survivior,老年代,永久区;可以强制Full GC
4) 线程监控 : 可以监测到所有线程以及栈信息
5) 类加载情况 : 显示加载空间,类数量
6) 虚拟机信息 : 显示虚拟机类型,版本,堆信息,虚拟机参数
7) MBean管理 : 可操作GC信息显示,线程信息查看,峰值线程数量,当前线程数量,死锁检测等
8) 使用插件 : 如JDK自带插件JTop,察看线程CPU使用排序
6.5 Visual VM多合一工具
1) Visual VM连接应用程序 : 添加JVM参数或者配合jstatd远程监控
2) 监控应用程序概况 : 类似Jconsole
3) Thead Dump和分析
4) 性能分析 : 在Sampler页面下,可以监测方法调用时间
5) 快照 : 快照导出
6) 内存快照分析
7) MBean管理 : 可通过插件继承MBean
8) TDA使用 : 分析导出的线程快照,可以单独运行,也可以作为Visual VM插件运行
9) BTrace介绍 : 在不停机的情况下添加代码执行,
监控指定函数耗时
取得任意行代码信息
定时触发
监控函数参数
监控文件
6.6 Visual VM对OQL的支持
1) Visual VM的OQL基本语法
2) 内置head对象
3) 对象函数
4) 集合/统计函数
5) 程序化OQL
6.7 MAT内存工具分析
6.8 MAT对OQL的支持
6.9 JProfile简介 : 商业软件
JVM : -XX:+UseSpinning (开启自旋锁) -XX:PreBlockSpin (自旋锁的等待次数)
-server -XX:+