




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JProfiler与Tomcat整合简介 -benson 一、JProfiler 介绍 nJProfiler是德国ej-technologies公司开发的一款全 功能的JAVA剖析工具,主要用于检查和跟踪(仅限 JAVA开发的)系统性能。 nJProfiler可以通过实时监控系统的内存使用情况,通 过监视垃圾回收、线程运行状况等手段,监视JVM运行 情况及其性能。它把CPU、线程和内存的剖析组合在一 个强大的应用中,直观的视图界面对定位性能瓶颈、 确定内存泄露、解决线程问题提供了便利。 n获取Jprofiler 它不是免费的软件,值得庆幸的是,它有10天试用版 本,10天分析一个问题,肯定绰绰有余了。 官方下载地址: (/products) 注册后在你提交的邮箱里会有个license。 网上查到的比较常用的key是: L-Larry_L#78484-akisfpr22a5j#268 二、Jprofiler与Tomcat整合的安装配置过程 n安装准备 下载Jprofiler6.0.3 由于客户端、服务端均是windows操作系统,都安装windows版本的 jprofiler6.0.3。 n客户端配置 1、按”SHIFT+F1”打开”QuickStart”对话框,选择“An application server, locally or remotely”,然后“Next”。 2、配置服务中间件类型,我用的是tomcat5.5.23,所有选择” Apache Tomcat 5.x”,然后点击Next。 3、选择“On a remote computer”,再选择“Windows X86/ADM64”(默认), Next。 4、选择JVM版本,”JVM Vendor”选择”Sun”,”Version”选择“1.5.0”, “mode”默认,Next 。 5、选择启动方式,选择:wait for a connection from the jprofiler GUI, Next。 6、输入远程服务器IP地址,我这里是:Remote address 36 ,Next。 7、输入被监控机器中Jprofiler安装位置(如:C:Program Filesjprofiler6),点击Next。 8、选择所集成的应用服务器启动脚本,(如:Tomcat在windows下常用 的启动脚本是Startup.bat)Jprofiler会自动在相同目录下生成 Jprofiler专用启动脚本(strartup_jprofiler.bat),如果脚本是 远程的,必须有远程计算机的磁盘可写权限,或者将启动脚本拷贝 到本地。点击Next。 9、选择远程服务器的代理监听端口,如:JProfiler port: 8849 default。 10、列出配置过程 的信息内容,阅读确认修改信息无误后,点击Next 。 11、完成配置,选择“No, I will start the session later”, Finish。 n服务端配置 服务器端的Tomcat-bin 目录最好设置可写权限,远程客户端建立映射。 当客户端和服务器的安装配置版本均一致时,可以直接将监控器端生成的 strartup_jprofiler.bat拷贝到服务器的Tomcat-bin目录下使用;若不 一致,最好在服务器端配置本地session,生成自己的启动脚本 strartup_jprofiler.bat。 n启动分析 1、在服务器端启动strartup_jprofiler.bat,提示等待连接信息; 2、在监控端,启动之前配置好的session。 注:如果远程安装不成功请检查: 1、本地和被监控机是否都安装了Jprofiler,版本是否一致 。 2、本地和被监控机的端口是否一致,最好都使用默认的 8849. 3、所选的JVM提供商和版本是否正确,可能服务器上安装了 多个JAVA版本,一定要选择应用程序启动时所用的。 4、检查远程连接是否畅通,应用目录必须可写共享,监控 机器需要映射共享目录,配置完成后在本地服务器上会生 产监控的启动文件。 n5、检查服务器端的tomcat端口是否已经占用。 注:可以使用这些命令解决端口被占用问题: Cmd-netstat ano|findstr 8080 (查看开放的端口) Tasklist|findstr “8080”(查找指定端口的应用程序) Ntsd c q p “PID” (终止进程) 6、使用的试用版license是否过期。 Jprofiler可以与Websphere、Weblogic、JBoss等中间件整合, 配置过程基本类似。 三、Jprofiler监测视图 n内存剖析(Memory profiler) JProfiler 的内存视图部分可以提供动态的内存使用状 况更新视图和显示关于内存分配状况信息的视图。所有的 视图都有几个聚集层并且能够显示现有存在的对象和作为 垃圾回收的对象。 所有对象 (All Objects) 显示所有加载的类的列表和在堆上分配的实例数.只有 JAVA1.5才会显示此视图。要查看特定时间段对象的分配, 并记录分配的调用堆栈,使用“记录的对象视图”。 列表 中显示的大小:显示所有分配实际的总大小,只包括相应 的指针的大小,不包含引用数组和实例的大小。以字节显 示。只包括类使用的JVM大小,也不包含类数据和本地变量 大小。 记录对象 (Record objects) 显示类或所有已记录对象和数组的列表,包括堆上分配的实 例数。只有已记录的对象在此视图中显示。如果选择了某个包或 类,你可以从记录对象视图跳转到分配调用树和分配热点,方法 是右键点击,选择要跳转的视图。 分配访问树 (Allocation call tree) 显示一棵请求树或者方法、类、包或对已选择类有带注释的 分配信息的J2EE组件。 分配热点( Allocation hot spots ) 分配热点视图显示所选类的对象被分配在哪儿的方法列表。 分配到至少占总数1%的方法才会被显示。方法可以根据action filter sets 设置进行过滤。此视图与CPU 视图中的hot spots view视图有些类似,只是显示的是分配的类的实例数和数组而不 是时间度量。 n堆遍历 (Heap walker ) 堆遍历器有五个视图: 类 Classes 显示所有类和它们的实例。 分配 Allocations 为所有记录对象显示分配树和分配热点。 索引 References 为单个对象和“显示到垃圾回收根目录的路径”提供索引图的显示 功能。还能提供合并输入视图和输出视图的功能。 数据 Data 为单个对象显示实例和类数据。 时间 Time 显示一个对已记录对象的解决时间的柱状图。 nCPU剖析(CPU profiler ) JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或 者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集 到方法、类、包或J2EE组件等不同层上。CPU视图部分包括: 访问树 Call tree 显示一个积累的自顶向下的树,树中包含所有在JVM中已记录的访问队 列。请求树可以根据Servlet和JSP对URL的不同需要进行拆分。 Jprofiler自动检测J2EE组件并在调用树中显示相关的节点。使用不同 的图标显示不同的J2EE组件类型: Servlets:黄色倒心形 JSPs:蓝色倒心形 EJBs:红色倒心形 热点 Hot spots 显示消耗时间最多的方法的列表。对每个热点都能够显示回溯树。该 热点可以按照方法请求,JDBC,JMS和JNDI服务请求以及按照URL请求来 进行计算。 访问图 Call graph 静态的显示所选择节点计算出线程调用图。节点可以为方法、类、包 或J2EE组件。 n线程剖析 Thread profiler 对线程剖析,JProfiler提供以下视图: 线程历史 Thread history 按照线程开始的顺序显示JVM中所有线程状态的详细历史信息。在线程图 的左边固定显示线程名,其它部分是滚动度量工具,在水平轴上显示时间 。时间轴的开始时间与JVM的第一个线程的时间保持一致。每个活动的线程 用带颜色的线标明,从线程开始到线程结束。 绿色:表明线程正在运行并能接收CPU时间。不表明线程正在消耗CPU时间,只 表明线程准备运行并没有阻塞或睡眠。线程被分配了多少CPU时间,依赖于 不同的其他因素,如:总的系统负载;线程优先级和调度的运算法则。 橙色:表示线程在等待,线程正在睡眠并等待计时器或其他线程唤醒。 红色:表示线程阻塞。线程尝试进入同步代码区或由其他线程控制的同步方法 。 蓝色:表示线程在Net I/O 操作,线程在等待java库的网络操作完成。在线程 监听socket连接或者等待读写数据到socket中时,会产生这种状态。 线程监控 Thread monitor 显示当前运行的线程列表以及相关的时间和状态信息。 如果监控的是java 1.5或以上的版本,在屏幕的上半部分就显示上面 的表,屏蔽的下半部分显示所选线程的线程创建堆栈跟踪。堆栈跟踪只 有线程创建时记录CPU数据才会显示。 死锁探测图表 Deadlock Detection 显示一个包含了所有在JVM里的死锁图表。正常的状态如果没有死锁就 显示 ”NO deadlocks detected”。 目前使用的监测器 Current monitor useage 显示目前使用的监测器并且包括它们的关联线程。 历史检测记录 History usage history 显示重大的等待事件和阻塞事件的历史记录。 监测使用状态 Monitor usage statistics 显示分组监测,线程和监测类的统计监测数据。 nVM 遥感勘测技术 VM telemetry 观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图,如下所 示: 堆 Heap 显示一个堆的使用状况和堆尺寸大小活动时间表。 记录的对象 Recorded objects 显示 堆上对象的总数,分为数组和非数组。可以显示线性图和区域图。 垃圾回收 Garbage collector 显示垃圾回收活动,包括对象释放的一条线和对象移动的一条线。只显示已 记录的对象,未记录的对象此视图不显示。 类 Classes 显示JVM调用的类的总和,分为过滤类和非过滤类。 线程 Threads 显示JVM中活着的线程总数,分为活动和不活动的线程。 n使用介绍 1、视图导出 视图导出可以生成xml文件。 2、设置查看源码和字节码 查看源代码,需要在Session-General Setting-Default Java File Path下的Source Path中设定源代码路径,设定后要重 启Jprofiler。 查看字节码,需要在Session-General Setting-Default Java File Path下的Class Path中设定发布的类的路径,设定后 要重启Jprofiler。 注:有些版本在建立session时有此选择项,配置完重启jprofiler 仍无法查看源码,则需要集成到IDE中才可以查看源代码。 n n在新窗口中比较快照 当前的视图可以保存下来,选择session-save ,或使用快捷键ctrl+s多个 快照可以进行对比。选择Compare Snapshots in new windows,打开新窗口。 默认左侧列出可用的快照,可以根据需要选择进行对比。 nIDE集成 当Jprofiler与IDE(eclipse)集成后,不需要配置sessin,可以直接在IDE 中调用。Jprofiler 集成不能在eclipse部分安装情况下使用。安装前关闭 eclipse,按照安装向导进行。安装完成后, 打开eclipse,查看 java perspective中是否存在run-profiler,不存在,请在windows-customize perspective 中,在command标签中的”profiler”选项前打勾。重启后可以 看到如图: 四、实例操作 n编写两个测试JSP页面。 testMemory.jsp 、testThread.jsp n配置监控环境。 此处配置本地Tomcat监控。 n观察视图变化。 n测试结论。 n1、Jprofiler监控要占用一定系统资源,所以一般情况下不要用于性能 测试。对被监控的应用,为了获取实时更新视图,可以给予应用一定的 负载。在相对比较大的压力情况下,可以只打开常用的监控项,如内存 、CPU、线程的监控。 可以查看内存、CPU分配热点,以及监控对象数量。 如图: n n实际应用中,当前对象数量监控很常用。如果你的程序中使用了 单例模式,那么你只会看见一个对象存在,如果存在多个则说明 程序问题所在了。同样,如应用进行一系列的操作后,检查一下 该销毁的对象是否还存在,若没有释放则可能内存产生了溢出。 n针对某个未释放掉的对象可以查看哪些实例在引用它,找出溢出 点。具体操作:在“Memory Views”右键选中该对象,选择 ”Take Heap Snapshots for selection” 选择完成后进入”Heap Walker”界面,选择”References”即可, 如图: n nJprofiler提供了不同观察粒度,提供对类、包、J2EE组件的监控 ,同时可以结合过滤器直接定位你关注的包或类。 nJprofiler监控有些视图刷新与应用存在一定时间差,需要等待刷 新,才能看到实际监控情况。 n线程视图可以查看到哪些线程处于等待、阻塞状态,通过查看该 线程运行的请求具体调用哪些类,去定位可能造成阻塞的问题类 。 常见不健壮代码的特征和建议 n尽早释放无用对象的引用。好的办法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024中国船舶集团总部业务岗位人员公开招聘31人开启笔试参考题库附带答案详解
- 度安徽政府网站绩效评估报告
- 安徽省淮北市五校联考2024-2025学年八年级下学期期中道德与法治试题(原卷版+解析版)
- 2025年湖北省襄阳市宜城市中考模拟化学试题(原卷版+解析版)
- 【安联Allianz】2025重新思考气候适应以实现全球韧性报告
- 教学副校长在教师会上讲话:从常态课入手点燃学生思维力的“引擎”
- 立秋节气的传承与创新
- 立春文化新媒传播
- 2025电梯平面广告投放合同范本
- 2025南京新劳动合同范本【江北新区】
- 2025榆林定边县国有企业财务会计人员招聘(10人)笔试参考题库附带答案详解
- 2024年公务员考试中财务知识的考察试题及答案
- 治理盐碱可行性报告
- 任务三家庭清扫有工序(教学课件)二年级下册劳动技术(人美版)
- 部编版2024~2025学年度第二学期六年级语文期中考试卷(有答案)
- 高炉水渣基础知识
- 小学课本剧一年级《咕咚来了》-剧本
- 硫酸使用安全培训
- 部编 2024版历史七年级下册第三单元第16课《明朝的对外关系》说课稿
- 2025年湖南湘潭高新集团有限公司招聘笔试参考题库含答案解析
- 住宅小区绿化苗木种植协议
评论
0/150
提交评论