- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?2008 BOCO Inter-Telecom Co. All rights reserved. JPROFILER的使用及 联通内存溢出解决方案交流 界面组 陈东白 JPROFILER 简介 JPROFILER 主要功能 联通内存溢出解决方案交流 JProfiler是一个全功能的Java剖析工具,专用于分析J2SE和J2EE应用程序。 JProfiler把CPU、执行绪和内存的剖析组合在一个强大的应用中,可提供许多IDE整合和应用服务器整合用途。 JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能。 内存剖析 Memory profiler JProfiler 的内存视图部分可以提供动态的内存使用状况更新视图和显示关于内存分配状况信息的视图。所有的视图都有几个聚集层并且能够显示现有存在的对象和作为垃圾回收的对象。 主要视图: (1)所有对象 (2)记录对象 Record objects (3)分配访问树 Allocation call tree (4)分配热点 Allocation hot spots CPU 剖析 JProfiler 提供不同的方法来记录访问树以优化性能和细节。线程或者线程组以及线程状况可以被所有的视图选择。所有的视图都可以聚集到方法、类、包或J2EE组件等不同层上。 主要视图: (1)访问树 Call tree (2)热点 Hot spots (3)访问图 Call graph 线程剖析 Thread profiler 对线程剖析 主要视图: (1)线程历史 Thread history (2)线程监控 Thread monitor (3)死锁探测图表 Deadlock Detection (4)目前使用的监测器 Current monitor useage (5)历史检测记录 History usage history (6)监测使用状态 Monitor usage statistics VM 遥感勘测 观察JVM的内部状态,JProfiler提供了不同的遥感勘测视图 主要视图: (1)堆 Heap (2)记录的对象 Recorded objects (3)垃圾回收 Garbage collector (4)类 Classes (5)线程 Threads 联通内存溢出 1 确认运行环境 上海现场硬件环境 上海现场软件环境 与其他现场对比 2 确认现场内存溢出场景 内存溢出报错信息 (1)Out of memory (2)Out of swap 日告警量 日性能量 常用操作 内存涨幅情况 (1)正常增长 (2)非正常增长 3 自身代码剖析 静态:只有手动操作才调用的 动态:实时更新的内容 例:告警、性能、资源 模拟现场场景 准备工作: (1)监控工具:jprofiler和任务管理器; (2)客户端启用时,申请最大内存设为:-xmx512m; (3)告警上限设为:200条; (4)告警发送频率:10条/秒,发送内容包括:活动告警、自动确认告警、自动清除告警; (5)性能上限设为:指标组最大值:2 资 源 场景一:钻去路径:根节点(方案)只钻去一次,将各层网元全部打开; (1)内存涨幅:随着网元逐层展开,内存不断增长; (2)监测时间:2小时; (3)分析:由于不断有新资源钻去出来,内存本应增长,因此此为正常增长; 场景二:钻去路径:反复钻去相同路径:方案 - 业务类型 - 业务实例 - 设备; (1)内存涨幅:内存逐渐增长,出现回收迹象,但每次的峰值逐渐上升; (2)监测时间:2小时; (3)分析:当第二次钻去“方案 - 业务类型 - 业务实例 - 设备”时,内存应彻底回收,且每次的峰值应处于水平,但目前峰值逐渐递增,因此为异常; 结 论 根据实验可知,在重新钻去方案时,有回收迹象,但回收不是彻底,有遗留对象,因此,从SwitchTopoViewAction为入口,排查SwitchTopoViewAction , 及钻去拓扑图时说调用的其他扩展(即在SwitchTopoViewAction中实现com.boco.topoplatform.controller.I
文档评论(0)