-weblogic日常维护总结与故障诊断.doc
《-weblogic日常维护总结与故障诊断.doc》由会员分享,可在线阅读,更多相关《-weblogic日常维护总结与故障诊断.doc(20页珍藏版)》请在咨信网上搜索。
1、中间件故障诊断总结一、 步骤:1、准确描述现象:客户说的和自己查看到的:平台、版本、操作、信息等。特别是,故障前是否有做过什么操作:网络调整、设备调整、主机参数调整、配置文件修改反正将这一切都列入排查的对象。2、使用工具收集数据,收集配置文件、日志、dump文件等等。3、 使用分析数据,根据问题或收集的数据,使用适当的工具分析数据,当然包括了在网上和在官方支持站点搜索类似的问题的解决办法。 4、 尝试解决问题,根据找到的问题点,尝试解决。如修改错的,复原正确的;运行有问题的,适当调整运行的环境和运行的参数等等。5、 给出最佳解决方案,一般就是继续观察了。6、总结经验并加以重用,知识积累。二、
2、通过前台收集基本的信息:1、重点是故障前做过的操作2、比对运行平台是否在官方的兼容性列表中,一般就是关注各个版本,特别是一些比较怪异的问题3、检查环境和参数,如能打开控制台,就在控制台中初步观察,一般进入控制台的格式是http:/ip地址:端口/console 如:http:/192.168.0.89:7001/console/。常用的留意点如下:A、 域运行状态(域-监视-健康状况);一般为running状态,如果不是running,那这些界面就没有了。B、 服务器运行状态(域-环境-服务器),正常的为running。C、 各个server性能(JVM)状态(域-环境-服务器,点击具体的se
3、rve后进入,监视-健康状况);留意JVM 堆中当前可用的内存量。不同的JVM,所显示的内容可能不一样,以下为sun的:D、 各个server线程状态(域-环境-服务器,点击具体的serve后进入,监视-线程);一般来说,空闲线程要多;健康状况为ok如下图health状态为:Warning,这个是有线程阻塞的。阻塞线程的内容为:# Servers右侧菜单:AdminServer(admin)-logging只找到examplesServer.log、access.log配置如图: 4、其他如果日志太少,里面没有记载相关信息,可参照日志文件的回滚设置。在“滚动类型:”属性页中可以设置这些日志文件
4、的回滚方式,当日志文件到一定得大小或过了设定的时间后,把日志信息保存到一个新的文件中。WebLogic提供按文件大小和时间两种方式。如下面的设置种,选择Rotation Type 为BY SIZE。也就是当日志文件的大小达到500K时,重新写一个新的文件。假如Rotation Type 为BY TIME,那么是每隔一段时间重新写一个新的文件。并且对这些文件编号设置日志文件名如:_%yyyy%_%MM%_%dd%_%hh%_%mm%5、日志的处理:查看日志中输出的具体内容,再进行处理。如:BEA-下面是一个线程阻塞的一个信息# STUCK ExecuteThread: 1 for queue:
5、weblogic.kernel.Default (self-tuning) has been busy for 2,503 seconds working on the request weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpldeab5f, which is more than the configured time (StuckThreadMaxTime) of 2,400 seconds. Stack trace:四、 产生hread Dump来分析问题hread Dump是非常有用的诊断Java应用问题的工具,每一个J
6、ava虚拟机都有及时生成显示所有线程在某一点状态的thread-dump的能力。虽然各个Java虚拟机thread dump打印输出格式上略微有一些不同,但是Thread dumps出来的信息包含线程;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。Thread Dump特点: 能在各种操作系统下使用 能在各种Java应用服务器下使用 可以在生产环境下使用而不影响系统的性能 可以将问题直接定位到应用程序的代码行上 Thread Dump能诊断的问题包括: 查找内存泄露,常见的是程序里load大量的数据到缓存 发现死锁线程 收集 Threa
7、d Dump 进行 Thread Dump 的方法取决于安装挂起服务器实例的操作系统。有关在不同的操作系统上进行 Thread Dump 的信息,Solaris OS- (Control-Backslash)kill -QUIT LinuxLinux 操作系统查看线程的方式不同于其它操作系统。该操作系统将每个线程视为一个进程。若要在 Linux 上进行 Thread Dump,查找通过其启动所有其它进程的进程 ID。使用命令: 若要获得根 PID,使用: ps -efHl | grep java *. * 使用一个作为字符串的 grep 参数(可在与服务器启动命令匹配的进程堆栈中找到该字符串)
8、。如果 ps 命令还没有管道传送到另一个例程,则报告的第一个 PID 将是根进程。IBM AIX在AIX上用IBM的JVM,内存溢出时默认地会产生javacore文件(关于cpu的)和heapdump文件(关于内存的)。执行kill -3 命令可以生成javacore文件和heapdump文件(pid为was java进程的id号,可以用ps -ef|grep java 查到),可以多执行几次。有些Java应用服务器是在控制台上运行,如Weblogic,为了方便获取threaddump信息,在 weblogic启动的时候,最好将其标准输出重定向到一个文件,用nohup sh startWebL
9、ogic.sh start.log &命令,执行kill -3 ,Stack trace就会输出到start.log里。为了反映线程状态的动态变化,需要接连多次做thread dump,每次间隔10-20s。Windows、XP、NT 设置DOS 窗口的属性:Layout - Screen Buffer Size- Height 9999。 同时按下CTRL-BREAK 找到Thread Dump的最开始的位置:Full thread dump. 每个服务器需要 - 来创建诊断问题所需的 Thread Dump。确保在每个服务器上执行几次,每次间隔大约 5 到 10 秒,以帮助诊断死锁问题。在
10、 NT 上,在命令 shell 中输入 CTRL-Break。 获取失败时刻的获取失败时刻的Thread Dump 启动JVM 时,加入参数: Sun JVM: -XX:+ShowMessageBoxOnE JRockit JVM: -Djrockit.waitone 五、 常见的问题1、Out of Memory 当JVM没有足够的内存执行任务时,会触发 java.lang.OutOfMemoryError 当没有更多内存可以分配时 或空闲的内存有太多碎片,无法利用时 可能不足的内存类型有可能不足的内存类型有: Native (物理内存) Heap (堆内存) 特定Java 内存代(例如,p
11、ermanet) 对Out of Memory的响应的响应 JVM会发送error到标准输出流和错误输出流 WLS会将应用程序没有处理的Java异常和错误都输出 到服务器日志 Out-of-Memory和类似的系统错误不应该由应用程序直 接处理接处理 如果应用程序发生错误,会给客户端返回错误信息( 例如HTTP 500) 如果WLS子系统发生错误,则服务器处于不稳定状态 ,需要重启 内存泄漏内存泄漏 内存泄漏: 最常见的引发Out-of-Memory错误的原因 在Java中,内存泄漏并不常发生(相对传统语言) 内存泄漏的原因是当对象不再被需要时,没有显式声明,进而 没有被垃圾回收处理 常见的场
12、景有: 太大的缓存造成内存泄漏 太多使用HTTP会话,导致内存泄漏 对数据库操作结束时,没有正常关闭数据集及数据连接 动态类加载问题 错误日志错误日志 该日志文件通常包括如下类型的信息: 操作系统错误消息 JVM版本 硬件和操作系统参数 系统环境变量 堆和垃圾回收汇总 线程汇总Runtime data area 主要包括五个部分:Heap (堆), Method Area(方法区域), Java Stack(java的栈), Program Counter(程序计数器), Native method stack(本地方法栈)。Heap 和Method Area是被所有线程的共享使用的;而Jav
13、a stack, Program counter 和Native method stack是以线程为粒度的,每个线程独自拥有。 Heap Java程序在运行时创建的所有类实或数组都放在同一个堆中。而一个Java虚拟实例中只存在一个堆空间,因此所有线程都将共享这个堆。每一个java程序独占一个JVM实例,因而每个java程序都有它自己的堆空间,它们不会彼此干扰。但是同一java程序的多个线程都共享着同一个堆空间,就得考虑多线程访问对象(堆数据)的同步问题。 (这里可能出现的异常java.lang.OutOfMemoryError: Java heap space) Method area 在Ja
14、va虚拟机中,被装载的class的信息存储在Method area的内存中。当虚拟机装载某个类型时,它使用类装载器定位相应的class文件,然后读入这个class文件内容并把它传输到虚拟机中。紧接着虚拟机提取其中的类型信息,并将这些信息存储到方法区。该类型中的类(静态)变量同样也存储在方法区中。与Heap 一样,method area是多线程共享的,因此要考虑多线程访问的同步问题。比如,假设同时两个线程都企图访问一个名为Lava的类,而这个类还没有内装载入虚拟机,那么,这时应该只有一个线程去装载它,而另一个线程则只能等待。 (这里可能出现的异常java.lang.OutOfMemoryErro
15、r: PermGen full)Java stack Java stack以帧为单位保存线程的运行状态。虚拟机只会直接对Java stack执行两种操作:以帧为单位的压栈或出栈。每当线程调用一个方法的时候,就对当前状态作为一个帧保存到java stack中(压栈);当一个方法调用返回时,从java stack弹出一个帧(出栈)。栈的大小是有一定的限制,这个可能出现StackOverFlow问题。 下面的程序可以说明这个问题。public class TestStackOverFlow public static void main(String args) Recursive r = new
16、Recursive();r.doit(10000);/ Exception in thread main java.lang.StackOverflowErrorclass Recursive public int doit(int t) if (t = 1) return 1;return t + doit(t - 1);Program counter 每个运行中的Java程序,每一个线程都有它自己的PC寄存器,也是该线程启动时创建的。PC寄存器的内容总是指向下一条将被执行指令的饿“地址”,这里的“地址”可以是一个本地指针,也可以是在方法区中相
17、对应于该方法起始指令的偏移量。 Native method stack 对于一个运行中的Java程序而言,它还能会用到一些跟本地方法相关的数据区。当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。本地方法可以通过本地方法接口来访问虚拟机的运行时数据区,不止与此,它还可以做任何它想做的事情。比如,可以调用寄存器,或在操作系统中分配内存等。总之,本地方法具有和JVM相同的能力和权限。 (这里出现JVM无法控制的内存溢出问题native heap OutOfMemory )旧系统2、服务器挂起问题描述在出现以下情况时怀疑服务器挂起:服务器不响应新的请求。 请求超时。 请求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word weblogic 日常 维护 总结 故障诊断
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。