zoukankan      html  css  js  c++  java
  • Tomcat和JDK的内存配置

    放在前面要说的话:
    JVM内存分配设置的参数有四个
    
    -Xmx Java Heap最大值,默认值为物理内存的1/4;
    
    -Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
    
    -Xmn Java Heap Young区大小,不熟悉最好保留默认值;
    
    -Xss 每个线程的Stack大小,不熟悉最好保留默认值;
    
    -XX:PermSize:设定内存的永久保存区域;
    
    -XX:MaxPermSize:设定最大内存的永久保存区域;
    
    -XX:PermSize:设定内存的永久保存区域;
    
    -XX:NewSize:设置JVM堆的'新生代'的默认大小;
    
    -XX:MaxNewSize:设置JVM堆的'新生代'的最大大小;
    方式一:增加JDK的内存的方法,直接在jdk下面的optional java vm arguments; 设置参数

    当你感觉你的Eclipse启动数据比较慢的时候,可以设置如下的属性
    • 如果使用eclipse的话,那么在解压的根目录中找到eclipse.ini
    • 如果使用sts的话,那么在根目录中找到STS.ini
    参数如下配置:

    -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
    • 注:这里的所有的JVM的参数是有设定规则的,补充内容中含有
    • 增加Tomcat的内存方式

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

    • linux下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置: SET JAVA_OPTS=-Xms512m -Xmx1024m
    • windows下,在tomcat_home}/bin/catalina.bat的前面,增加如下设置: SET JAVA_OPTS=-Xms512m -Xmx1024m

    注:表示初始化内存为512MB,可以使用的最大内存为1024MB

    对Tomcat的优化操作[来源自网络]

    (1) 在bin/catalina.bat文件中加入下面参数,对JVM进行优化,至于这一大驼参数的作用及说明,
    请查看文档: http://www.mzone.cc/article/321.html

    JAVA_OPTS="-server -showversion -Xms1000M -Xmx1000M -XX:PermSize=256m -XX:MaxPermSize=256m"
    
    JAVA_OPTS="$JAVA_OPTS -d64 -XX:CICompilerCount=8 -XX:+UseCompressedOops"
    
    JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=4 -XX:TargetSurvivorRatio=90"
    
    JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=256m -XX:-UseAdaptiveSizePolicy"
    
    JAVA_OPTS="$JAVA_OPTS -Duser.timezone=Asia/Shanghai -XX:-DontCompileHugeMethods"
    
    JAVA_OPTS="$JAVA_OPTS -Xss256k -XX:+AggressiveOpts -XX:+UseBiasedLocking"
    
    JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=31 -XX:+CMSParallelRemarkEnabled "
    
    JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=256m -XX:+UseFastAccessorMethods"
    
    JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"
    
    JAVA_OPTS="$JAVA_OPTS -XX:+UseGCOverheadLimit -XX:AllocatePrefetchDistance=256 -XX:AllocatePrefetchStyle=1"
    
    JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:MaxGCPauseMillis=200"

    上述这样的配置,基本上可以达到:

    • 系统响应时间增快
    • JVM回收速度增快同时又不影响系统的响应率
    • JVM内存最大化利用
    • 线程阻塞情况最小化
    -Xms=-Xmx=服务器内存*70%
    如部署tomcat,jboss在同一台服务器 -Xms=-Xmx=服务器内存*80%*1/4

    (2) Tomcat连接参数的优化,主要是针对吞吐量做优化:

    修改conf/server.xml文件,把原来

    <Connector port="8080" protocol="HTTP/1.1" />

    修改内容如下:

    <Connector port="8080" protocol="HTTP/1.1"
    
    URIEncoding="UTF-8"
    
    minSpareThreads="25"
    
    maxSpareThreads="75"
    
    enableLookups="false"
    
    disableUploadTimeout="true"
    
    connectionTimeout="20000"
    
    acceptCount="300"
    
    maxThreads="300"
    
    maxProcessors="1000"
    
    minProcessors="5"
    
    useURIValidationHack="false"
    
    compression="on"
    
    compressionMinSize="2048"
    
    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
    
    redirectPort="8443"/>

    一段补充说明:

    搜索【<Executor name="tomcatThreadPool"】,开启并调整为
    
    <Executor
    
    name="tomcatThreadPool"
    
    namePrefix="catalina-exec-"
    
    maxThreads="1000"
    
    maxIdleTime="60000"
    
    minSpareThreads="20"/>
    
    搜索【port="8080"】,调整为
    
    <Connector
    
    port="8080"
    
    executor=" tomcatThreadPool" //开启线程池
    
    protocol="org.apache.coyote.http11. Http11AprProtocol" //我们没有安装: 开启Apr协议,需要安装Apr支持 maxHttpHeaderSize="8192"
    
    maxThreads="1000"
    
    processorCache="1000"
    
    acceptCount="1000"
    
    minSpareThreads="100"
    
    acceptorThreadCount="8"
    
    URIEncoding="UTF-8"
    
    enableLookups="false"
    
    redirectPort="8443" //关闭反向查询
    
    connectionTimeout="120000"
    
    keepAliveTimeout="120000"
    
    maxKeepAliveRequests="65535"
    
    disableUploadTimeout="true"
    
    compression="on"
    
    compressionMinSize="4096" //开启静态文件压缩
    
    noCompressionUserAgents="gozilla, traviata" //开启静态文件压缩
    
    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json,appli cation/x-javascript " //开启静态文件压缩
    
    />

    可以通过java/jdk/bin下的java visualVM查看eclipse的内存大小和tomcat的内存大小,主要看堆,PermGen两个大小,如图:

     

  • 相关阅读:
    序例化-Externalizable 接口
    线程休眠
    线程优先级
    const & 用法
    AcGePoint3d ads_point 转换
    结果缓冲区 resbuf具体用法
    选择集用法
    引用用法
    通过用户选择获取各种东西
    ARX中类型强制转换
  • 原文地址:https://www.cnblogs.com/lusid/p/5450351.html
Copyright © 2011-2022 走看看