uptime命令显示系统总共运行了多长时间和系统的平均负载。依次显示为:现在时间、已经运行时长、当前登陆用户数、系统在过去的1分钟、5分钟和15分钟内的平均负载。
系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
查看cpu和内存占用
3、top -Hp {pid}观察进程中的线程,哪个线程CPU和内存占比高
4、printf ‘%0xn’ {tid}利用linux命令将线程ID转换为16进制(jvm日志以16进制显示)
二、java 1、jps查看java进程
2、jinfo {pid}查看java进程的系统参数;VM Flags;Command line
3、jstack查询线程信息;堆栈跟踪信息
如:
- jstack {pid} | grep {txid} 查看某一线程对应的堆栈信息
- jstack -l {pid} -l:会打印出额外的锁信息,在发生死锁时可用来观察锁持有情况
对java程序资源和性能进行实时监控,包括GC活动。
如:
- jstat -gc {pid} 3s 每隔3s打印一次GC信息
查看堆内存和生成堆转储快照
- jmap -J-d64 -heap {pid} 查看堆信息(当指定的进程在64位Java虚拟机上运行时,可能需要指定-J-d64选项)
- jmap -J-d64 -histo {pid}查看堆内存中的对象数量及大小,-histo:live:查看存活对象。
说明: 其中class name中B 代表 byte,C 代表 char,D 代表 double,F 代表 float,I 代表 int,J 代表
long,Z 代表 boolean,前边有 [ 代表数组, [I 就相当于 int[],对象用 [L+ 类名表示 - jmap -dump:format=b,file=heapDump {pid} 堆dump
注:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path JVM启动参数,让JVM在遇到OOM时自动生成dump文件
jhat与jmap搭配使用,用于分析jmap生成的heap dump文件
如:
jhat -port 5000 heapDump



