记住一点:pid就是进程的id。
1.jps:主要用来输出进程的运行状态的信息。
jps -m -l: 输出main方法的参数名,输出main的类。
2.jstack:查看java进程的堆栈信息。jstack 进程号 | grep 线程的16进制
样例:找出最消耗cpu的线程信息。
第一步:jps找到进程的id
第二步:top -Hp 进程的id,找到线程,并把线程转化为16进制的。
第三步:jstack 进程的id | grep 线程的16进制,可以找到消耗性能的代码。
3.jmap:查看堆内存的使用情况。
jmap -permstat 进程的id:打印进程的类加载器和类加载器加载的持久代对象信息,输出:类加载器名称、对象是否存活(不可靠)、对象地址、父类加载器、已加载的类大小等信息
jmap -heap 进程的id:查看进程堆内存使用情况,包括使用的GC算法、堆配置参数和各代中堆内存使用情况。
jmap -histo :live pid:查看堆内存中的对象数目、大小统计直方图,如果带上live则只统计活对象。
还可以将使用情况dump到文件中。用jhat查看。
4.jstat:JVM统计监控工具。
jstat -gc 进程号 采样时间间隔 采样数目