[深入理解JAVA虚拟机-JDK1.7]-[调优案例分析]-1[高性能硬件部署]
2016-02-18 23:00
459 查看
首先需要理解的是现存32bit虚拟机与64bit虚拟机在典型操作系统下(windows,unix)所能使用的最大的内存是多少:
32bit JDK在windows操作系统下最大支持2G内存,理论上堆内存设置为1.5G合适,在unix操作系统下最大能支持4G内存;64bit JDK理论上支持2的64次方内存。
检验JDK支持内存大小的方法:
java -XmxXXXg version,如果能显示版本信息表示支持。
场景描述:
日PV量在10w左右的B/S架构的在线文档网站,之前服务器配置较低,使用32bit JDK,堆内存设置为1.5G,网站用户表示响应缓慢。为了解决此问题,物理服务器升级配置8cpu,16G内存,使用64bit JDK,堆内存设置12G,网站不定期出现长时间失去响应的情况。
故障排查:
发现Full GC时间过长。
分析:
程序将文件从磁盘加载到内存中,内存中出现大量的大文件序列化对象,很快将空间耗尽。
解决方案:
部署方案改为32bit JDK集群,单个虚拟机堆内存设置为1.5G。
32bit JDK在windows操作系统下最大支持2G内存,理论上堆内存设置为1.5G合适,在unix操作系统下最大能支持4G内存;64bit JDK理论上支持2的64次方内存。
检验JDK支持内存大小的方法:
java -XmxXXXg version,如果能显示版本信息表示支持。
场景描述:
日PV量在10w左右的B/S架构的在线文档网站,之前服务器配置较低,使用32bit JDK,堆内存设置为1.5G,网站用户表示响应缓慢。为了解决此问题,物理服务器升级配置8cpu,16G内存,使用64bit JDK,堆内存设置12G,网站不定期出现长时间失去响应的情况。
故障排查:
发现Full GC时间过长。
分析:
程序将文件从磁盘加载到内存中,内存中出现大量的大文件序列化对象,很快将空间耗尽。
解决方案:
部署方案改为32bit JDK集群,单个虚拟机堆内存设置为1.5G。
相关文章推荐
- Spring MVC配置
- 第五章 SpringMVC之ViewResolver和View解析
- Java [Leetcode 125]Valid Palindrome
- Eclipse下 快速找到类对应的包
- java日期格式
- 六种常用的设计模式java实现(四)模板模式
- Eclipse包与类的显示和查找小技巧
- 对JAVA的初步相识
- Simple-Java—Collections(二)Java中如何把数组转换为ArrayList
- 【004】Mac下命令行terminal安装jdk
- LeetCode_1_TwoSum(Java Code)
- java学习之JDBC
- Java 入门 之 AWT 与 Swing 的比较
- Java中JSON操作
- Spring事务的来龙去脉
- spring hibernate4整合问题
- Java byte数据类型详解
- Servlet生命周期
- Eclipse导出JavaDoc中文乱码问题解决
- 01、数据类型初阶(Java的基本数据类型)