jvm内存问题最佳实践

jvm内存问题最佳实践

ID:40236538

大小:1.14 MB

页数:99页

时间:2019-07-27

jvm内存问题最佳实践_第1页
jvm内存问题最佳实践_第2页
jvm内存问题最佳实践_第3页
jvm内存问题最佳实践_第4页
jvm内存问题最佳实践_第5页
资源描述:

《jvm内存问题最佳实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JVM内存问题最佳实践JVMBestPractice曾凡光2010年03月JVM内存问题最佳实践本次技术交流,涵盖范围为:如何选择合适的Java虚拟机了解Java基本内存管理基本概念了解发生内存不足/内存泄漏错误的原因和症状了解如何诊断内存不足/内存泄漏错误了解如何解决内存不足/内存泄漏错误3MENU选择合适的Java虚拟机Java内存管理的基本概念GC次数过多消耗时间过长的原因和症状内存不足和内存泄漏错误的原因和症状诊断、定位和解决内存不足和内存泄漏错误使用分析工具解决内存不足和内存泄漏错误预防

2、内存不足和内存泄漏OutOfMemory错误实例4Java虚拟机的种类OracleJava虚拟机原SunJava虚拟机原BEAJRockit两种Java虚拟机,都运行在Windows、Linux、Solaris平台HPJava虚拟机:与SUNJDK基本兼容,有自己独特的启动参数运行在HPUNIX上IBMJava虚拟机:与SunJDK基本兼容启动参数的写法风格与SunJDK、HPJDK非常不同主要用于WebSphere、跑在AIX上的中间件服务器开源Java虚拟机:与SUNJDK兼容5如何选择合适的

3、Java虚拟机选择稳定的JDK:刚刚GA的版本不稳定,比如1.5.0_001.6.0_00刚增加新特性的版本不稳定,比如1.5.0_071.6.0_14安装JDK之前,先看厂商的ReleaseNotes根据平台和应用,选择合适厂商的JDK:HP-UX只能选择HPJDK,AIX只能选择IBMJDKWindows、Linux可以选择SUNJDK和JRockitSolaris平台,最好使用SUNJDK开源JDK,目前生产环境中用的极少6Java虚拟机32VS64尽量选择使用32位JDK:32位JDK在T

4、PS测试中,结果比64位JDK要好;JDK6.0启用指针压缩技术后,64位略微领先32位JDK主要适用于内存需求较小,CPU密集型应用64位JDK主要用于大内存应用:突破4G内存限制吞吐量并没有提高主要用于大内存需求的系统尽量启用指针压缩技术IBM:-XcompressedrefsSUN:-d64-XX:+UseCompressedOopsBEA:-XXcompressedRefs=true7小节回顾Java虚拟机的种类如何选择合适的Java虚拟机32bitVS64bit在本小节中,我们讲述了以下

5、内容:8MENU选择合适的Java虚拟机Java内存管理的基本概念GC次数过多消耗时间过长的原因和症状内存不足和内存泄漏错误的原因和症状诊断、定位和解决内存不足和内存泄漏错误使用分析工具解决内存不足和内存泄漏错误预防内存不足和内存泄漏OutOfMemory错误实例9Java内存管理的基本概念Java内存Java堆内存(heap)Permanent区(Sun/HpJDK)Java堆内存(heap):是JVM用于分配Java对象的内存,包含活动对象 和不可用对象堆大小通常是在服务器启动时使用java命

6、令中的–Xms(最小)–Xmx(最大)标志来定义。Permanent区:是SunJDK和HPJDK用来加载类(class)的专门的内存区这个区域不归属Java堆内存(heap)范围如果Java应用很大,例如类(class)很多,那么建议增大这个区域的大小来满足加载这些类的内存需求通过–XX:PermSize=***M–XX:MaxPermSize=***M调整10Java内存管理的基本概念本地内存(nativememory):是JVM用于其内部操作的本地内存(非Java内存)JNI代码和第三方本地

7、模块(例如,本地JDBC驱动 程序)也使用本地内存最大本地内存大小取决于以下因素:操作系统进程内存大小限制已经指定用于Java堆的内存进程内存大小:32位操作系统,理论最大值2的32次方=4G64位操作系统下使用64位的JDK,按照现在的硬件条件,可以看做无限制进程内存=Java内存+本地内存+加载的可执行文件和库+操作系统保留内存11Java内存管理的基本概念Java堆内存大小的决定因素:进程大小限制,<=4G“加载的可执行文件和库+系统保留内存”不同操作系统和应用不一样,通常在百M到1G间JV

8、M的本地内存在不同的JDK之间也不一样。JRockit相对SunJDK,做了非常好的JIT优化,但是本地内存要求更多的空间通常Java堆内存大小推荐不大于2G目前Unix/Linux操作系统默认已经做了内核调整--开启了大内存模式,可以上到2G以上Java堆内存的大内存模式:AIX上Java堆内存有大内存模式(LAM),最大支持到3.25GWindow上有连续地址空间限制,通常不大于1.5G。WindowsAdvanceServer最大支持3G模式。其他操作系统请查看操作系统文档和

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

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

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