`

虚拟机内存大小

阅读更多
修改MyEclipse/eclipse文件夹中配置文件eclipse.ini中的内存分配=================================== 一般的ini文件设置主要包括以下几项: -vmargs -Xms40m -Xmx256m -XX:PermSize=64M -XX:MaxPermSize=128M 以下解释其意思。 -vmargs:说明后面是VM的参数 -Xms40m:虚拟机占用系统的最小内存 -Xmx256m:虚拟机占用系统的最大内存 -XX:PermSize:最小堆大小。一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置 -XX:MaxPermSize:最大堆大小。这个也适当大些所以若出现问题,首先请调整 -Xms40m:将其设置的小一些,就ok了,1g内存推荐设置为: -vmargs -Xms128M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M 其中-XX:PermSize=64M可以设置大一些,但不能超过MaxPermSize -Xmx512M的5%为25.6M,理论上要求-Xmx的数值与-XX:MaxPermSize必须大于25.6M



来源:[url]http://blog.csdn.net/chow__zh/article/details/7701476[/url]

Java heap space的设置与在myeclipse启动时分配JVM heap大小的方法:.
 
 .
 
我使用的服务方式的Tomcat,内存2G,我在Configure Tomcat-》JAVA-》JAVA OPTIONS中的参数设置是:.
 
-Xms500m 
-Xmx1024m 
-XX:PermSize=64M 
-XX:MaxPermSize=256m 
-XX:ReservedCodeCacheSize=48m 
-Duser.timezone=GMT+08
 
首先检查程序有没有限入死循环 

这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出现这样的的问题以后,引发了其他的问题。在网上一查可能是JAVA的堆栈设置太小的原因。
 
跟据网上的答案大致有这两种解决方法: 
1、设置环境变量 
set JAVA_OPTS= -Xms32m -Xmx512m 
可以根据自己机器的内存进行更改。 

2、java -Xms32m -Xmx800m className 
就是在执行JAVA类文件时加上这个参数,其中className是需要执行的确类名。(包括包名) 
这个解决问题了。而且执行的速度比没有设置的时候快很多。 

如果在测试的时候可能会用Eclispe 这时候就需要在Eclipse ->run -arguments 中的VM arguments 中输入-Xms32m -Xmx800m这个参数就可以了。
 后来在Eclilpse中修改了启动参数,在VM arguments 加入了-Xms32m -Xmx800m,问题解决。 

==============================================================================
 
一、java.lang.OutOfMemoryError: PermGen space 
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。 
解决方法: 手动设置MaxPermSize大小 

修改TOMCAT_HOME/bin/catalina.sh 
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入以下行: 
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。 

二、java.lang.OutOfMemoryError: Java heap space 

Heap size 设置 


JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可 进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
 提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。 

提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
 解决方法:手动设置Heap size 

修改TOMCAT_HOME/bin/catalina.sh 
在“echo "Using CATALINA_BASE:   $CATALINA_BASE"”上面加入: JAVA_OPTS="-server -Xms800m -Xmx800m   -XX:MaxNewSize=256m"
 
三、实例,以下给出1G内存环境下java jvm 的参数设置参考: 
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
 很大的web工程,用tomcat默认分配的内存空间无法启动,如果不是在myeclipse中启动tomcat可以对tomcat这样设置: 
TOMCAT_HOME\bin\catalina.bat 中添加这样一句话:set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m
 
Java堆的管理—垃圾回收提到一下几点,很不错,或许可以作为写程序时候的准则: 
  (1)不要试图去假定垃圾收集发生的时间,这一切都是未知的。比如,方法中的一个临时对象在方法调用完毕后就变成了无用对象,这个时候它的内存就可以被释放。 
  (2)Java中提供了一些和垃圾收集打交道的类,而且提供了一种强行执行垃圾收集的方法--调用System.gc(),但这同样是个不确定的方法。Java 中并不保证每次调用该方法就一定能够启动垃圾收集,它只不过会向JVM发出这样一个申请,到底是否真正执行垃圾收集,一切都是个未知数。
   (3)挑选适合自己的垃圾收集器。一般来说,如果系统没有特殊和苛刻的性能要求,可以采用JVM的缺省选项。否则可以考虑使用有针对性的垃圾收集器,比如增量收集器就比较适合实时性要求较高的系统之中。系统具有较高的配置,有比较多的闲置资源,可以考虑使用并行标记/清除收集器。
   (4)关键的也是难把握的问题是内存泄漏。良好的编程习惯和严谨的编程态度永远是最重要的,不要让自己的一个小错误导致内存出现大漏洞。 

  (5)尽早释放无用对象的引用。 

大多数程序员在使用临时变量的时候,都是让引用变量在退出活动域(scope)后,自动设置为null,暗示垃圾收集器来收集该对象,还必须注意该引用的对象是否被监听,如果有,则要去掉监听器,然后再赋空值。
 
就是说,对于频繁申请内存和释放内存的操作,还是自己控制一下比较好,但是System.gc()的方法不一定适用,最好使用finallize强制执行或者写自己的finallize方法。
 
==============================================================================
 
java.lang.OutOfMemoryError: Java heap space 解决方法 

这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.
 
设置的方法主要是以下几个:. 
1.可以在windows 更改系统环境变量 
   加上JAVA_OPTS=-Xms64m -Xmx512m 

2.如果用的tomcat,在windows下,可以在 
  C:\tomcat5.5.9\bin\catalina.bat  中加上::set JAVA_OPTS=-Xms64m -Xmx256m 
   位置在: rem Guess CATALINA_HOME if not defined  这行的下面加合适. 

3.如果是linux系统 

  Linux  在{tomcat_home}/bin/catalina.sh的前面,加上:set JAVA_OPTS='-Xms64 -Xmx512
 
------------------------------
 

如果要在myeclipse中启动,上述的修改就不起作用了,可如下设置: 

Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的 
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m 



分享到:
评论

相关推荐

    如何配置Tomcat的JVM虚拟机内存大小

    如何配置Tomcat的JVM虚拟机内存大小

    如何设置Tomcat的JVM虚拟机内存大小

    设置Tomcat的JVM虚拟机内存大小,防止内存溢出

    Tomcat JVM内存设置方法

    Tomcat JVM虚拟机默认内存1800 M左右,当服务内存不够用时,需要手动设置内存大小,不可超过服务器系统内存的80%,本文档提供设置方法(使用命令启动有效),实测可用。

    设置tomcat的jvm虚拟机大小

    设置虚拟机大小,本文档很专业的指导大家如何设置JVM虚拟机内存大小

    centos6.2安装(详细图解安装).doc

    注意:经多次试验,虚拟机内存大小设置不同,系统的安装的界面也不同,如果内存设置小于1536M,安装时不会出现有好的图形安装界面,这样安装起来很不方便。建议安装时将内存调整大于等于1536M。如果觉得分配的内存过...

    OpenStack iaas云平台双节点搭建

    swap分区 是虚拟机内存大小的2倍 / 分区 40G 第二台虚拟机 作为计算节点 2CPU 2G以上内存 硬盘三个:50G 20G 20G 网络适配器两个:一个nat 一个仅主机 虚拟机分区情况 Boot 分区 200M swap分区 是虚拟机内存大小的2...

    虚拟机创建

    第七步:根据自己电脑的内存选择虚拟机内存大小 第八步:网络类型选择使用仅主机模式网络 第九步:这两步都为默认选项         第十步:磁盘选择创建新的虚拟磁盘 第十一步:磁盘大小设为50g,并设为将虚拟磁盘存储...

    基于平均负载和空闲内存税率的虚拟机内存优化 (2013年)

    当内存资源充足时,通过平均负载预测虚拟机内存的需求,根据需求分配内存大小;当内存资源紧张时,从未完全使用内存的虚拟机中根据空闲内存税率回收部分内存,实现在虚拟机间内存的均衡分配。实验证明本方案的系统对访存...

    WEBLOGIC性能调优

    1. 查看当前线程池大小: 登录WEBLOGIC控制台,选择服务器-某服务器-监视-性能,可查看到当前最大线程数量。由于WEBLOGIC9取消了在页面进行调整线程大小的功能,需要在...4. 修改JAVA虚拟机内存大小 5. 启用隧道管理

    Xiao伟简易虚拟机V5.0.1绿色免费版

    用户可以使用这款软件自定义设置虚拟内存大小,帮助用户在没有虚拟机的情况下测试软件,有需要的朋友可以来下载。 使用说明: 选择映像文件(IMG/ISO)→ 设置虚拟内存大小 → 点“加载”即可。设置内存最大为1G,...

    简易虚拟机

    简易虚拟机 最小的虚拟机 不占内存,大小只有1m多,方便使用

    Linux怎么增加虚拟机磁盘空间

    Linux系统在vmware下增加虚拟机磁盘空间的方法与Windows是不一样的,VMware6.0安装目录下有一个命令行工具vmware-vdiskmanager.exe 程序,可用来修改虚拟机硬盘的大小。方法如下:

    1虚拟机组建局域网.doc

    接 现有条件:安装了Windows XP电脑并已安装好VMware 第一步:启动VMware点击"新建虚拟机"新建一台虚拟机参数如下: 虚拟机名称:Windows 2000 Profeional 虚拟机内存:192MB 虚拟机硬盘类型:IDE 虚拟机硬盘大小:4GB...

    U盘引导测试器Bootable USB Test 1.3汉化版.rar

    用于测试USB或HDD设备是否能够成功引导,可设置虚拟机内存大小、创建临时会话虚拟硬盘,设置虚拟硬盘文件压缩NTFS属性。此外,还能测试ISO及IMA镜像文件是否能够引导。在开始启动测试之前,需要先设置一下虚拟内存...

    如何用虚拟机组建局域网.doc

    接 现有条件:安装了Windows XP电脑并已安装好VMware 第一步:启动VMware点击"新建虚拟机"新建一台虚拟机参数如下: 虚拟机名称:Windows 2000 Profeional 虚拟机内存:192MB 虚拟机硬盘类型:IDE 虚拟机硬盘大小:4GB...

    虚拟机代码及设计文档

    2.6 大小端 6 2.7 机器指令的设计 7 2.8 中断的设计 11 2.9 环境的设计 11 2.10 支持软件 11 3 模块类及接口的设计 12 3.1 WIN32平台类的设计 12 3.1.1 WIN32平台类的属性 12 3.1.2 WIN32平台类的接口 12 3.1.3 WIN...

    VMware创建虚拟机.docx

    VMware创建虚拟机的详细步骤,图文并茂,计算机小白都可以看懂~

    vmware linux虚拟机安装.docx

    1、centos redhat 选择 ...5.6虚拟机内存设置设置2048M 否则安装过程中会出错 5.7选择网络类型 5.8IO控制器选择默认值 5.9选择磁盘类型 5.10创建磁盘 5.11磁盘大小设置 5.12指定磁盘文件默认值即可

Global site tag (gtag.js) - Google Analytics