• tomcat8.5优化配置


    参考:https://blog.csdn.net/wangfei0904306/article/details/59741236

    参考: http://www.open-open.com/lib/view/open1401931407228.html

    文中的PermSize、MaxPermSize已经不用要去掉,MaxTenuringThreshold最大只能为15

    参考:http://www.th7.cn/Program/java/201303/127995.shtml

    windows系统在bin/catalina.bat文件中加入下面参数,对JVM进行优化  linux系统在catalina.sh文件下修改

    在echo Using CATALINA_BASE:   "%CATALINA_BASE%"的上面一行加下面代码: 

    set JAVA_OPTS=
    -server 
    -Xms4096M 
    -Xmx4096M   #-Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落
    -Xss512k 
    -XX:+AggressiveOpts 
    -XX:+UseBiasedLocking  
    -XX:+DisableExplicitGC 
    -XX:MaxTenuringThreshold=15 
    -XX:+UseConcMarkSweepGC 
    -XX:+UseParNewGC  
    -XX:+CMSParallelRemarkEnabled 
    -XX:+UseCMSCompactAtFullCollection 
    -XX:LargePageSizeInBytes=128m  
    -XX:+UseFastAccessorMethods 
    -XX:+UseCMSInitiatingOccupancyOnly 
    -Djava.awt.headless=true

     echo Using JAVA_OPTS:    %JAVA_OPTS%

     linux系统在catalina.sh文件下修改

    JAVA_OPTS='
    -server 
    -Xms4096M 
    -Xmx4096M   
    -Xss512k 
    -XX:+AggressiveOpts 
    -XX:+UseBiasedLocking  
    -XX:+DisableExplicitGC 
    -XX:MaxTenuringThreshold=15 
    -XX:+UseConcMarkSweepGC 
    -XX:+UseParNewGC  
    -XX:+CMSParallelRemarkEnabled 
    -XX:LargePageSizeInBytes=128m  
    -XX:+UseFastAccessorMethods 
    -XX:+UseCMSInitiatingOccupancyOnly 
    -Djava.awt.headless=true';

    -Xmx:java heap最大值,使用的最大内存
    上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
    -XX:PermSize:设定内存的永久保存区域
    -XX:MaxPermSize:设定最大内存的永久保存区域
    -XX:MaxNewSize:
    -Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
    +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
    -Xss:每个线程的Stack大小
    -verbose:gc 现实垃圾收集信息
    -Xloggc:gc.log 指定垃圾收集日志文件
    -Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
    -XX:+UseParNewGC :缩短minor收集的时间
    -XX:+UseConcMarkSweepGC :缩短major收集的时间

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

    参考  http://blog.csdn.net/centre10/article/details/50639693

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

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

    改成

    <Connector port="8080"
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    maxHttpHeaderSize="8192"
    maxThreads="1000"
    minSpareThreads="100"
    maxSpareThreads="1000"
    minProcessors="100"
    maxProcessors="1000"
    enableLookups="false"
    compression="on"
    compressionMinSize="1024"
    noCompressionUserAgents="gozilla, traviata"
    compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
    connectionTimeout="25000"
    URIEncoding="utf-8"
    acceptCount="1000"
    redirectPort="8443"
    disableUploadTimeout="true" />

  • 相关阅读:
    MyBatis的初始化方式
    WCF X.509验证
    NPOI导出EXCEL 打印设置分页及打印标题
    一些旁门左道
    曲线救国:IIS7集成模式下如何获取网站的URL
    图片的粘贴上传
    让EF飞一会儿:如何用Entity Framework 6 连接Sqlite数据库
    ASP.NET 保存txt文件
    JavaScript高级程序设计学习笔记--高级技巧
    JavaScript高级程序设计学习笔记--错误处理与调试
  • 原文地址:https://www.cnblogs.com/steven-snow/p/9262025.html
Copyright © 2020-2023  润新知