JProfiler提供的监测内容
1.Memory View
JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。
所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。
All Objects:显示目前系统内存中的全部对象。
Records Objects:显示类或所有已记录对象的包。
Allocation Call Tree: 显示一棵请求树或者方法、类、包或对已选择类有带注释的分配信息的J2EE组件。
Allocation Call Spots:显示一个列表,包括方法、类、包或分配已选类的J2EE组件。对于每个spot都可以显
它的跟踪记录树。
Class Tracker:设置对象追踪。。
内存对象可以设置标记点,记录内存中对象数量的变化。
2.Heap walker
在JProfiler的堆遍历器(Heap walker)中,你可以对堆的状况进行快照并且可以通过选择步骤下寻找感兴趣的对 象。
堆遍历器有五个视图:
Classes:显示所有类和它们的实例。
Allocations:为所有记录对象显示分配树和分配热点。
References:为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示功能。还能提供合并输入视
图和输出视图的功能。
Data:为单个对象显示实例和类数据。
Time:显示一个对已记录对象的解决时间的柱状图
3.CPU Views
JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。
所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。
CPU视图部分包括:
Call tree 显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队列。
JDBC,JMS和JNDI服务请求都被注释在请求树中。
请求树可以根据Servlet和JSP对URL的不同需要进行拆分。
Hot spots 显示消耗时间最多的方法的列表。对每个热点都能够显示回溯树。
该热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来进行计算。
Call graph 显示一个从已选方法、类、包或J2EE组件开始的访问队列的图。
4.Thread Views
对线程剖析,JProfiler提供以下视图:
Thread history:显示一个与线程活动和线程状态在一起的活动时间表。
Thread monitor:显示一个列表,包括所有的活动线程以及它们目前的活动状况.
Thread Dump:Dump出某个时刻的所有线程
5.VM Tememetry Views
Memory:记录当前实际工程实际使用的内存情况。可选堆内存(Heap包括 PS Eden Space年轻代,PS OLD Gen年老代,PS Survivor交换区)的内存使用和回收情况。 或非堆内存(Non-Heap 包括Code Cache,PS Perm Gen)
Recorded Objects:记录系统当前对象数量变化。
GC Activity:GC所占cpu情况
Threads:系统活动线程数。
CPU Load:目前工程占用系统cpu状态。
Linux下内存监测查看比较
ps -aux|grep + 工程
显示结果:
USER域指明了是哪个用户启动了这个命令;
用户可以查看某个进程占用了多少CPU;
内存使用及其VSZ(虚拟内存大小)和RSS(常驻集大小):
VSZ表示如果一个程序完全驻留在内存的话需要占用多少内存空间;
RSS指明了当前实际占用了多少内存;
top -p + pid
PID 进程id编号
USER 进程所有者的用户名
PRI 进程的优先级
SIZE 进程大小,包括它的代码、栈和数据区域,以千字节为单位
RSS 进程使用的内存总量,以千字节为单位
SHARE 进程使用的共享内存数量
STAT 进程的状态,通常R表示运行,S表示休眠
%CPU 自从最近的屏幕更新以来,这个进程使用的CPU百分比
%MEM 这个进程使用的内存百分比
TIME 自从进程启动以来,这个进程使用的CPU时间量
CPU 最近执行进程的CPU
COMMAND 正在执行的命令