linux的
uptime
执行之后, 每列的含义: 系统时间 运行时间 连接数(每个终端算一个) 1,5,15分钟内系统平均负载(运行队列中的平均进程数)
top
最上面同uptime
第三行显示 cup内存
再往下显示每个进程占cpu情况
vmstat
可以统计系统的cup,内存,swap,io等情况
vmstat 1 4 每一秒采一次,采4次
cs us 占用率高,说明上下文切换频繁,说明系统有线程正在频繁切换
pidstat
要自己安装 sudo apt-get install sysstat
pidstat -p 2962 -u 1 3 -p指定进程 -u监控CPU 每秒采样 一共3次
pidstat -p 2962 -u 1 3 -t -t显示线程
java 自带的工具
jps
列出 java进程,类似于ps命令
参数-q可以指定jps只输出进程ID,不输出类的短名称
参数-m可以用于输出传递给java进程(主函数)的参数,这个有用
参数-l可以用于输出主函数完整路径
参数-v可以显示传递给JVM的参数
jps -m
jps -mlvv
jps -m -l
jps -m -l -v
jinfo
可以用来查看正在运行的java应用程序的扩展参数,甚至支持在运行时,修改部分参数
jinfo -flag MaxTenuringThreshold 2972 显示了新生代对像晋升到老年代对象的最大年龄 2972 可以通过 jps -m 找一个
jinfo -flag PrintGCDetails 2972 显示是否打印GC详细信息
jinfo -flag +PrintGCDetails 2972 运行时修改参数,控制是否输出GC日志
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没有响应的时候用
jstack 120 >>c:\a.txt
JConsole
图形化监控工具
Visual VM