




已阅读5页,还剩94页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JVM内存问题最佳实践JVMBestPractice,2010年03月,1,学习通信PPT,JVM内存问题最佳实践,此技术交流,适用范围:如何选择合适的Java虚拟机了解Java基本内存管理基本概念了解内存不足/内存泄漏错误的原因和范围选择正确的Java虚拟机Java内存管理的基本概念。选择过度消耗时间的原因和症状内存不足和内存泄漏错误的原因和症状诊断,定位和解决内存不足和内存泄漏错误。使用分析工具解决内存不足和内存泄漏错误。防止内存泄漏OutOfMemory错误实例、3、学习AC PPT、Java虚拟机在HPUNIX上运行的IBMJava虚拟机具有唯一的启动参数。与SunJDK基本兼容的启动参数在WebSphere、AIX上运行的中间件服务器开源Java虚拟机:与SunJDK兼容,学习4、AC PPT,适当的Java虚拟机AIX可以选择IBMJDKWindows,Linux可以选择SUNJDK和JRockitSolaris平台。最好使用SUNJDK开放源代码JDK,很少在当前生产环境中使用,5,学习AC PPT,尽可能使用Java虚拟机32VS64,32位JDK:32位JDK在TPS测试中的结果比64位JDK好。在JDK6.0中启用指针压缩技术后,64位稍早的32位JDK主要适用于内存要求较低的情况,而CPU密集型应用程序64位JDK主要适用于大型内存应用程序。克服4G内存限制,未增加吞吐量主要用于大内存需求的系统可以充分利用指针压缩技术IBM :-xcompressedrefssun :-d64-xx 3360 usecompressedsr :-xxcompressedrefs=t 使用内存不足和内存泄漏错误定位和解决分析工具解决内存不足和内存泄漏错误内存不足和防止内存泄漏OutOfMemory错误实例,8,学习AC PPT,Java内存管理的基本概念,Java内存Java堆内存(Heap)permanent区域(sun/Permanent zone: SunJDK和HPJDK用于加载类(类)的专用内存区域。此区域不是Java堆内存(heap)范围。如果有很多Java应用程序(例如类),则建议您增加此区域的大小以满足加载这些类的内存要求。xx 3360 permsize=* * * * mxx 3360 max permsize=* * m调整,9,学习AC PPT,Java内存管理的基本概念,本地内存:JVM用于其内部工作的本地内存操作系统进程内存大小限制为Java堆指定的内存进程内存大小:32位操作系统,理论上最大值为2的32次=4G64位操作系统使用64位JDK时,无限制进程内存=Java内存本地内存加载的可执行文件和库操作系统保留内存,10,学习AC PPT,Java内存管理的基本概念,取决于当前硬件条件计算从JVM开始回收对象在回收前使用的内存(KB)后回收对象使用的内存(KB)后执行堆大小总计(KB)回收的时间(毫秒)。完整的GC消息示例:memory7.160: GC 131072k-130052k(131072k)in 1057.359 ms,41,学习AC PPT,GC日志分析-GC输出的分析结果为oooGC运行多长时间(即发生内存泄漏,通常需要观察大量GC日志),是否存在与JVM进程内存大小相结合的内存碎片,Javaheap内存问题或本地内存问题,42,学习AC PPT,GC日志分析-确定内存问题类型,默认确定内存问题类型Java heap GC泄漏本地内存频繁显示GC日志,heap内存仍有足够的空间,但Java进程标记为随着时间增长(积累需要很长时间),43,学习Ac PPT,处理JavaHeapOOM错误,JavaHeapOOM错误:确保verboseGC处于活动状态。 也就是说,启动服务器时,使用java-verboseGC开关确定是否发生了OOM错误。运行完整GC后,应执行内存压缩以减少内存碎片,并注意初始(和周期)JVM堆可用性/使用情况。,44,学习AC PPT,分析Java堆OOM的应用程序,如果JVM正常运行GC,则会出现应用程序问题:如果应用程序使用高速缓存对象:请检查高速缓存对象数是否有限制。通过减小高速缓存限制,可以减小堆栈的总大小。如果应用程序使用活动时间较长的对象,请减少这些对象的数量或缩短生命周期。例如:缩短HTTP会话的超时时间并调整垃圾收集策略,可以解决OOM问题搜索内存泄漏问题。例如,如果不正确的JDBC池连接处理服务器只是响应负载增加或应用程序添加,JVM自然需要更大的Heap、45、AC PPT学习、GC日志分析(内存增加速度慢)。GC日志中内存增长缓慢gc71678k-61588k (98112k),0.007510 secsGC 9799k-87826k(98240k),0.00738 secs.,46,学习AC PPT,GC日志分析-内存碎片,GC日志分析,IBMJDK中出现的内存碎片现象问题,使用与其他JDK不匹配的垃圾收集算法(注:IBMJDKGC输入与上面略有不同),因此sun JDK/HPS调整政策很少。IBM IBM JDK:-XcompactgcSunJDK:young区域大小增加-xx 3360 new ratio-xx : new size-xx 3360 max new size-xx : survivr使用Permanent区域存储Java中的类对象的最大差异是增加Permanent区域大小-xx 3360 max permsize=256m(建议使用128M或更高),48,学习AC PPT,添加Java堆OOM分析,到目前为止执行了哪些操作但是,不建议在生产环境中使用JVM事件检查器,因为其系统开销通常很高!与应用程序团队协作以确定可能的内存泄漏或改善对象的使用和/或生命周期状态。49、学习通信PPT、JRockit功能和JRockit1.4.2支持Javaruntimeanalyzer(jra)。此分析器可以对在JRockitJVM和JRockit上运行的Java应用程序执行运行时性能分析。JRA包含两个部分:JVM和当前运行的Java应用程序的数据收集。要查看收集的信息,请使用分析器工具。执行几分钟的历史记录,然后分析数据,以执行特定JVM问题JRockit1.4.2_05的JRA支持MemoryLeak检测功能、50、学习AC PPT、本地内存OOM(1)处理、本地内存OOM错误:执行搜索的方式与用于Java堆OOM的方式相同定期监视进程内存大小:对于Unix/Linux,请使用ps-p-ovsz或top命令的Windows,请使用perfmon工具。确定是否使用了本地模块或JNI代码。还要记住,计算机的物理内存总量(RAM和交换空间的总和)是否足够满足所有运行进程的要求,51,学习AC PPT,处理本地内存OOM(2),进程内存大小:进程运行时使用的地址空间受操作系统进程大小值的限制。32位Unix:进程大小限制为4GB,保留1-2GB以便在操作系统中使用RedHatLinuxAS2.1:应用程序可以使用的进程大小为3GBWindows:进程大小限制为2GB(默认值),但具有可以增加到3GB的Java堆内存,JVM在服务器启动时指定此外,还可能受计算机的物理内存和计算机上运行的其他进程的限制。52,学习AC PPT,处理本地内存OOM(3),使用收集的数据解决OOM错误如果怀疑内存泄漏,可能会对泄漏源第三方代码(例如JDBC驱动程序)或JNI代码发生泄漏排除方法,如果可能,不使用第三方代码,则替换纯Java实现以验证泄漏源。由于存在本地内存泄漏,增加物理内存会延迟故障,无法消除问题,学习AC PPT,处理本地内存OOM(4),在GC日志中可以看到Heap的实际使用量远远低于最大值。减少此最大值可以提供更多可用本地内存。如果RAM和交换空间不足,请添加内存或升级计算机JVM以使用本地内存。也就是说,您可以加载类并生成代码,但是几个小时后内存使用量通常会很稳定,从而允许加载运行时类和优化代码(JIT)禁用JIT功能。如果使用JRockit,-xntoopt将学习-Dpiler=NONE,54,AC PPT(如果使用Sun/HP的JDK),并处理本地内存OOM(5)。如果无法确定本地内存OOM错误的原因:请与JVM供应商联系以查找跟踪本地内存分配调用的方法。请与第三方模块或JNI代码供应商联系,以确定是否具有调试/跟踪功能,以便继续收集和分析有关OOM错误发生时间和原因的信息。如果存在多个原因,则缩小探查范围可能需要一些时间。升级JDK升级操作系统升级WeblogicServer,55升级,55,学习AC PPT,查看部分,如何识别Java内存错误和本地内存错误基于GC日志解决内存问题的步骤,本部分为56,学习AC PPT,MENU,相应的Java 使用内存不足和内存泄漏错误位置和解决方案分析工具解决内存不足和内存泄漏错误防止内存不足和内存泄漏OutOfMemory/MemoryLeak错误实例、57、AC PPT学习、分析工具分析OOM问题,遇到JavaHeapOOM问题时找不到问题,最终方法只能使用分析工具进行分析。典型的内存分析工具这些工具很多,轻量级分析工具yourcokit-轻量级EeclipseMemoryAnalyzer -脱机分析IBMHeapAnalyzerMDD4J -脱机分析,58,学习交换PPT,yourcokit (1)获取新的启动脚本startwls _ wit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版事业单位合同解除与赔偿协议范本
- 2025年度高端装备制造项目委托合同范本
- 2025年度托盘租赁与物流配送一体化服务合同
- 2025年度特色餐厅特色食材供应合同
- 2025年度餐饮店员工股权激励与绑定合同
- 2025年商铺转手及经营权转让合同范本
- 2025版商品混凝土绿色生产技术与设备采购合同
- 2025版旅游度假村租赁推广使用合同示范文本
- 2025年度石材行业石料运输节能减排合同
- 2025年度智慧实验室装修工程合同样本
- 京东集团员工手册-京东
- 成人癌性疼痛护理-中华护理学会团体标准2019
- 初中语文学习方法指导
- 2023年苏州市星海实验中学小升初分班考试数学模拟试卷及答案解析
- GB/T 23483-2009建筑物围护结构传热系数及采暖供热量检测方法
- GB/T 22237-2008表面活性剂表面张力的测定
- 股指期权风险管理
- 《电业安全工作规程》
- 发证机关所在地区代码表
- 过去分词公开课--完整版PPT课件
- 书法的章法布局(完整版)
评论
0/150
提交评论