一、linux 部分
top
该命令可以简要的查看系统的cup、内存使用情况
sar
可以周期性的对内存和cpu进行采样
vmstat
与sar类似,也能监控内存和cpu的使用情况。
例如
vmstat 1 3
iostat
提供详细的I/O信息
pidstat
监控进程和线程的性能情况
jstack 打印所有线程信息
查看cpu信息
cat /proc/cpuinfo
查看服务器负载情况
uptime
查看系统日志。常见的oom kill 和tcp丢包,都会有记录
dmesg |tail
查看每个cpu的负载情况(排查是否由单线程引起的)
mpstat -P ALL 1
以兆为单位查看内存的使用情况
free -m
查看网络设备的吞吐率
sar -n DEV 1
二、windows
(1)任务管理器(cpu、内存、磁盘)
(2)perfmon资源管理器(cpu、内存、磁盘)
(3)Process Explorer (优秀的进程监控工具)
(4)pslist(命令行 进程监控工具)
三、jdk工具
如:
C:\Program Files\Java\jdk1.8.0_112\lib>java -classpath tools.jar sun.tools.jps.Jps
18304
70496 Program
85624 jd-gui.exe
23500 Launcher
85596 Jps
(1)jps 输出java进程
(2)jstat 查看java堆栈信息
使用方法如下:
使用tool.jar
C:\Program Files\Java\jdk1.8.0_112\lib>java -classpath tools.jar sun.tools.jstat.Jstat
(3)jinfo
查看java 程序的扩展参数
(4)jmap
生成java应用程序的堆快照和对象统计信息
例如:
(5)jhap
分析,jmap的heap.hprof
OQL查询查询类
(6)jvisualvm
图形界面查看java堆,
(7)jstack
打印线程堆栈
(8)jstat
开启远程rmi服务,使远程使用jstack等命令
(9)jhprof
查看各个函数所使用的cpu时间
四、图形工具使用
(1)jconsole 可以对对java堆栈进行分析
(2)Visual VM 可以对java堆栈进行分析
(3)MAT 可以对内存泄漏进行检查(eclipse 免费)
(4)JProfile 一款商用的分析软件