weblogic企业级运维实战-笔记 (2)

weblogic企业级运维实战-笔记 (2)

ID:12310435

大小:798.77 KB

页数:23页

时间:2018-07-16

weblogic企业级运维实战-笔记 (2)_第1页
weblogic企业级运维实战-笔记 (2)_第2页
weblogic企业级运维实战-笔记 (2)_第3页
weblogic企业级运维实战-笔记 (2)_第4页
weblogic企业级运维实战-笔记 (2)_第5页
资源描述:

《weblogic企业级运维实战-笔记 (2)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、常见问题的解决一,内存溢出1,定位是永久区溢出OutOfMemoryError:JavaPermanentSpace还是堆区溢出OutOfMemoryError:Javaheapspace2,原因堆内存溢出:(1)没有分配足够的堆内存(2)内存泄漏(3)内存碎片,则让jvm收集碎片非堆内存溢出:(1)用了JNI本地代码(2)非堆内存少(3)RAM不足二,内存泄漏1,定位Step1系统响应慢,内存占用高,但是访问量不大;Step2控制台强制垃圾回收,内存还是不小;Step3通过分析GC日志,发现fullGC都在回收年青区的对象。同时观测发现,fullg

2、c时cpu高,不fullgc时cpu正常。且从每次GC前后内存比较,内存在累积增加。Step4如果有heapdump分析工具,可以看见内存累积增加,且能定位到哪个对象个数占用内存在多次GC后仍增加。如果没有内存分析工具,看日志,看内存增大前,做了哪些操作,大体能定位到问题的模块。2,原因(1)代码用了Collection,但是没有v[--size]=null(2)对象活动时间太长比如http会话(3)缓存了太多对象,则用软连接(4)大循环(比如死循环)重复产生大量新对象三,连接泄漏1,现象(1)Connection连接池沾满了,但是WLsocket线

3、程很少。可能有ResourceException异常可能是连接泄漏2,方案EnableConnectionLeakProfiling开启连接池泄漏的监控,但是耗资源四,线程死锁1,现象找到stuck线程,如果waitingformonitorentry,如果大量线程都在等给同一地址上锁,五,查找耗用CPU高的线程 1、topas查看占用cpu占用最高的进程的PID2、执行:ps-mpPID-oTHREAD以查找相应进程下所有正在占用CPU的线程的TID3、将步骤2中找到的占用CPU高的线程TID转换成16进制,用对应的16进制数值在3步骤中生成的ja

4、vacore文件中查找对应的线程堆栈(nativeID为该16进制值)六,服务器挂起1,现象WL不响应用户请求,但是也没有明显错误。也就是反应慢2,原因(1)配置的线程数不足增加总体线程数特别socketReader的线程数(2)垃圾回收花费时间增加堆内存,增加年轻代内存,采用不同的垃圾收集器。(3)线程死锁(4)Jdbc死锁(5)等待远程调用(6)JSP正在编译参《分布式JAVA应用基础与实践P63》内存区分为方法区、堆、本地方法栈、PC寄存器、JVM方法栈。其中方法区在堆区里,方法区和堆区是线程共享,其余的是每个线程一份。方法区位于permane

5、ntGeneration持久代,通过-xx:permSize和—XXMaxpermSize设置最大和最小值堆区所有new的对象都在这里,通过-xms,-xmx定最大和最小值。当空余堆内存小于40%,会增加heap到-xmx的大小,为了避免运行时频繁调整heap大小,将-xms,-xmx设置成一样。新生代用-xmn设置其大小旧生代:多次回收垃圾任然存活的对象,如缓存对象。也可以是大对象,可以通过-xx:pretenureSizeThreshold来设置对象过大于这个值就放旧生代;还可以是大数组放旧生代。本地方法栈:就是存储了每个native方法调用的状

6、态。PC寄存器占用的是CUP寄存器。JVM方法栈空间不足时会有stackoverflowError错误,可用-Xss来指定大小。新生代用Copying算法.并行收集器用标记-整理来回收年老代,并发收集器用标记-清除来回收年老代JVM相关概念Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人想出来。1,内存区域http://www.cnblogs.com/brucewangxin/archive/2012/03/03/2378716.html牛:http://www.cnblogs.com/aigongsi

7、/archive/2012/04/06/2434771.htmljvm虚拟机栈:是线程独有的,每次启动一个线程,就创建一个jvm虚拟机栈,线程退出的时候就销毁。这里面主要保存线程参数变量和局部变量值。堆:主要保存创建的Class类的对象,这个Class类的对象link到方法区的数据结构,特别的实例变量在本区。方法区:方法的字节码、静态成员变量、类的数据结构。常量池:方法区的一部分,主要保存class内存结构中常量值例如String值,publicstaticfinal类型的值堆区细分:P60Jvm的heap区包括Yong(年轻代)和Tenured(年

8、老代)区,yong区又分eden,survivor区Tenured区里的对象生命周期长。还有Perm(持久代

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。