应用中查询结果非常大时,会占用比较多的内存,造成系统内存不足,引起OOM错误或者系统运行缓慢,重新启动应用后系统恢复正常。当碰到这种问题时, 很难有一个比较有效的办法来找到问题代码。系统在大多数据的时候是正常运行,只是某一种数据条件满足的情况下造成,可能是操作者从地址栏中直接修改一些参数时才发生。
对于这一类问题,可以通过如下几步可以快速的定位到问题代码。
a) 下载引起系统出问题前后两个小时内的的useraccessmonitor.log.
b) 通过EOS性能分析工具,找出内存突变的时间段,也就内存突然被大量占用。
c) 在性能分析日志文件中
i. 内存突然增加:
内存突然增加表示程序执行过程中突然占用了大量内存。在JVM使用的内存列中可以看到。
ii. 查找空闲内存突然增加前一两分钟内的请求所有请求。一般会有很多请求是相同的,去掉相同的请求,可以缩小范围,加快定位速度。
找到可疑的PR,然后用UE打开Useraccessmonitor.log.查找请求ID
可以看到本次请求执行的全过程,如果未执行完成的BIZ,找到未执行完的BIZ,当中和肯定有数据库查询,找到可能在某种情况下没有条件时占用大量内存的代码。
日志文件中,@@B 表示开始,@@E 表示结束。
用户ID如果为NULL,这个请求就是BIZ,有用户ID的则是PR.
每一个BIZ的执行完成后,都会成对出现开始和结束标志。从最外层BIZ开始,可以找到整个BIZ的执行过程,并对可能产生大数据量的查询条件进行归避。
在EOSLOG查找相同的请求ID,综合分析,可以更快找到问题代码。
在EOS5.3中可以通过工具直接分析出未结束的BIZ,这样就可以更快找到问题所在。
总之:在分析这一类问题时关键是要找到未执行完成的BIZ。在系统未消占用大量内在之前,BIZ都会执行完成,只有不能正常执行完成那才是问题的关键。
分享到:
相关推荐
EOS 是一个可以在 Intel X86 平台上运行的、面向教学的开源操作系统。为了让 EOS 适合于教学,EOS 被设计的十分小巧,并且尽量保持架构简单。但是,EOS 仍然涵盖了系统引导、进程管理、内存管理、IO 管理、文件系统...
EOS操作系统是一个小型的开源教学用操作系统,很多高校用它来做本科阶段OS这门课的实验...(想要系统阅读源代码请在海西慧学官网下载OS lab演示版,如果想运行工程则需要EOS授权版,如果条件允许可以向老师索取授权)
这是EOS的源代码 是一个用于学习操作系统原理的参考资料
操作系统实验的教程。学校提供的文档。感觉写得不错
EOS系统概述pdf电子书。讲述EOS原理。
EOS 操作系统实验教程.EOS 操作系统实验教程.EOS 操作系统实验教程.EOS 操作系统实验教程.
EOS操作系统实验源代码+报告 基于北京英真时代的engitime OS lab的实验一 ~ 实验六 实验一:操作系统的启动 实验二:线程的状态和转换 实验三:线程的同步 实验四:时间片轮转调度 实验五: 物理存储器与进程逻辑...
嵌入式系统EOS-2011
普元EOS开发平台概述,普元EOS是一款JAVA开发平台,该文件是对系统的简要介绍。
eos操作系统实验报告.doc
普元EOS北方电信业务支撑系统解决方案普元EOS北方电信业务支撑系统解决方案
01 EOS系统概述. 的
Canon EOS 相机固件升级方法,方便实用,容易上手,谢谢。
EOS集成SVN-EOS开发技术, 在EOS中集成 SVN 系统
普元EOS平台是建立在J2EE基础之上的应用软件平台,提供了从开发、调试、运行、维护、管理完整的支持。采用多层体系架构,将数据服务、原子操作、业务逻辑、展现逻辑、用户界面、工作流程有效的分离,各个层次之间的...
EOS 60d 相机快速指南, PDF版本
佳能EOS300D数码单反相机使用说明书,中文版,PDF版,
EOS系统表说明业务词典类型角色对应的数据表为CAP_ROLE
01 EOS系统概述.chm :01 EOS系统概述.chm 02 EOS示例与教程.chm :02 EOS示例与教程.chm 03 EOS基础开发指南.chm :03 EOS基础开发指南.chm 04 EOS基础参考手册.chm :04 EOS基础参考手册.chm 05 EOS基础构件库...