jps: 查看出当前有哪些Java进程,获取该Java进程的id后再对该进程进行处理。(是进程,不是线程)
jstack: 主要用来查看某个Java进程内的线程堆栈信息。用来生成JVM中的线程快照(thread dump)。
jmap: 查看JVM内存使用详情,heapdump文件。
虚拟机中的共划分为三个代:年轻代(Young Generation)、老年代(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃圾收集影响比较大的。
jstat: 可以实时监控资源和性能信息。
jinfo: 实时查看和调整jvm配置参数。
JDK中有个性能监控工具叫做VisualVM,主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。
1)jps(显示当前所有java进程pid的命令)
例如:
2)jstack(查看线程信息)
例如:
3)jmap(查看内存信息)
例如:
4)jstat(查看性能信息)
参数:
-class:统计class loader行为信息
-compile:统计编译行为信息
-gc:统计jdk gc时heap信息
-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况
-gccause:统计gc的情况,(同-gcutil)和引起gc的事件
-gcnew:统计gc时,新生代的情况
-gcnewcapacity:统计gc时,新生代heap容量
-gcold:统计gc时,老年区的情况
-gcoldcapacity:统计gc时,老年区heap容量
-gcpermcapacity:统计gc时,permanent区heap容量
-gcutil:统计gc时,heap情况
例如:
Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间
5)Jvisualvm:VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,提供强大的分析能力,对 Java 应用程序做性能分析和调优。在高版本JDK(大于1.8或后期更新的1.8版本)中已经不会再自动集成 VisualVM,需要独立下载安装,下载地址:VisualVM: Download