[深入理解JAVA虚拟机-JDK1.7]-[调优案例分析]-1[高性能硬件部署]

首先需要理解的是现存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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值