zoukankan      html  css  js  c++  java
  • 修改TOMCAT的JVM虚拟机内存大小几种方式

    Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。

    经常会出现Java.lang.OutOfMemoryError: Java heap space 即JVM Heap溢出的错误。

    对此有以下几种方法可以选用:

    第一种方法:修改catalina.bat/catalina.sh文件

    1.linux 下调整tomcat的内存设置
    
    修改bin目录下catalina.sh文件
    
    在cygwin=false之上
    
    添加以下语句
    
    JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"
    
    其中-xms为jvm初始化堆的大小,-xmx为jvm堆的最大值
    
    2. window 下调整tomcat的内存设置
    
    修改bin目录下catalina.bat文件@echo off下追加
    
    set JAVA_OPTS= -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxNewSize=256M -XX:MaxPermSize=256M
    
    3.eclipse下修改外置tomcat的内存设置
    
    open launch configuration=>arguments=>vm arguments
    
    追加-Xms1024M -Xmx4096M -XX:PermSize=512m -XX:MaxPermSize=2048m

    第二种方法:环境变量中设置

    变量名:JAVA_OPTS
    变量值:-Xms512m-Xmx512m
    (服务器内存大小为32G)
    变量值:-Xms512M -Xmx2048M -XX:PermSize=512M -XX:MaxPermSize=2048M  -XX:ReservedCodeCacheSize=512m

    前两种方法针对的是bin目录下有catalina.bat的情况(比如直接解压的Tomcat等)并且通过startup.bat/startup.sh启动才生效,

    但是有些安装版的Tomcat下没有catalina.bat,这个时候可以采用如下方法,当然这个方法也是最通用的方法:

    第三种方法:通过D:apache-tomcat-8.0.52-windows-x64apache-tomcat-8.0.52in omcat8w.exe,配置内存大小

    1》打开D:apache-tomcat-8.0.52-windows-x64apache-tomcat-8.0.52in	omcat8w.exe,
    2》点击Java选项卡,然后将会发现其中有这么两项:Initialmemorypool和Maximummemorypool.Initialmemorypool这个就是初始化设置的内存的大小。
    3》Maximummemorypool这个是最大内存的大小设置完了就按确定然后再重启TOMCAT你就会发现tomcat中jvm可用的内存改变了。

    另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。

    如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过3-5秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的80%作为堆大小。当增加处理器时,记得增加内存,因为分配可以并行进行,而垃圾收集不是并行的。

  • 相关阅读:
    索引访问方法及索引优化
    AS3常用的几个顶级类
    AS3随鼠标移动的蜘蛛
    as去掉字符串中的重复字符
    AS单例模式
    移动的云朵
    (转)探索C++的秘密之详解extern "C"
    (转)YUV / RGB 格式及快速转换算法
    (转)如何解決TRDBD5M CMOS在DE2 delay的問題?
    (转)存储器类型
  • 原文地址:https://www.cnblogs.com/huangjinyong/p/14102905.html
Copyright © 2011-2022 走看看