- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
WEBLOGIC企业级运维实战-笔记
常见问题的解决内存溢出定位是永久区溢出OutOfMemoryError:Java Permanent Space还是堆区溢出OutOfMemoryError: Java heap space原因堆内存溢出:(1)没有分配足够的堆内存(2)内存泄漏 (3)内存碎片,则让jvm收集碎片非堆内存溢出:(1)用了JNI本地代码 (2)非堆内存少 (3)RAM不足内存泄漏定位Step1系统响应慢,内存占用高,但是访问量不大;Step2控制台强制垃圾回收,内存还是不小;Step3通过分析GC日志,发现full GC都在回收年青区的对象。 同时观测发现,full gc时cpu高,不full gc时cpu正常。且从每次GC前后内存比较,内存在累积增加。Step4 如果有heap dump 分析工具,可以看见内存累积增加,且能定位到哪个对象个数占用内存在多次GC后仍增加。如果没有内存分析工具,看日志,看内存增大前,做了哪些操作,大体能定位到问题的模块。2,原因代码用了Collection,但是没有v [--size] = null对象活动时间太长比如http会话缓存了太多对象,则用软连接大循环(比如死循环)重复产生大量新对象连接泄漏现象Connection连接池沾满了,但是WL socket线程很少。可能有ResourceException异常可能是连接泄漏方案Enable Connection Leak Profiling 开启连接池泄漏的监控,但是耗资源线程死锁1,现象找到stuck线程 ,如果waiting for monitor entry,如果大量线程都在等给同一地址上锁,五,查找耗用CPU高的线程 1、topas查看占用cpu占用最高的进程的PID2、执行: ps -mp PID -o THREAD 以查找相应进程下所有正在占用 CPU 的线程的TID3、将步骤2中找到的占用CPU高的线程TID转换成16进制,用对应的16进制数值在3步骤中生成的javacore文件中查找对应的线程堆栈(native ID为该16进制值) 六,服务器挂起现象WL不响应用户请求,但是也没有明显错误。也就是反应慢原因配置的线程数不足增加总体线程数特别socketReader的线程数垃圾回收花费时间增加堆内存,增加年轻代内存,采用不同的垃圾收集器。线程死锁Jdbc死锁等待远程调用JSP正在编译参《分布式JAVA应用 基础与实践P63》内存区分为方法区、堆、本地方法栈、PC寄存器、JVM方法栈。其中方法区在堆区里,方法区和堆区是线程共享,其余的是每个线程一份。方法区位于permanent Generation持久代,通过-xx:permSize和—XXMaxpermSize设置最大和最小值 堆区所有new的对象都在这里,通过-xms,-xmx定最大和最小值。当空余堆内存小于40%,会增加heap到-xmx的大小,为了避免运行时频繁调整heap大小,将-xms,-xmx设置成一样。新生代 用-xmn设置其大小旧生代:多次回收垃圾任然存活的对象,如缓存对象。也可以是大对象,可以通过-xx:pretenureSizeThreshold来设置对象过大于这个值就放旧生代;还可以是大数组放旧生代。本地方法栈:就是存储了每个native方法调用的状态。PC寄存器占用的是CUP寄存器。JVM方法栈空间不足时会有stackoverflowError错误,可用-Xss来指定大小。新生代用Copying算法 .并行收集器用标记-整理来回收年老代,并发收集器用标记-清除来回收年老代JVM 相关概念Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人想出来。内存区域/brucewangxin/archive/2012/03/03/2378716.html/brucewangxin/archive/2012/03/03/2378716.html牛:/aigongsi/archive/2012/04/06/2434771.html/aigongsi/archive/2012/04/06/2434771.htmljvm虚拟机栈:是线程独有的,每次启动一个线程,就创建一个jvm虚拟机栈,线程退出的时候就销毁。这里面主要保存线程参数变量和局部变量值。堆:主要保存创建的Class类的对象,这个Class类的对象link到方法区的数据结构,特别的实例变量在本区。方法区: 方法的字节码、静态成员变量、类的数据结构。常量池:方法区的一部分,主要保存class内存结构中常量值 例如String值,public static final 类型的值堆区细分:P60Jvm 的heap区包括Yong(年轻代)和Tenured(年老代)区,yong区又分 eden, s
文档评论(0)