tomcat内存(jvm)、并发、缓存优化

本文详细介绍了如何通过调整JVM参数和Tomcat配置实现系统的高并发处理能力,包括内存调优、并发调优及缓存优化等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 内存调优
rem次调整为高并发内存调优
rem 以下配置为JVM参数调优
set JAVA_OPTS=
-server     rem 以服务器模式启动,启动速度慢,但更稳定,性能更好
-Xms8192M   rem 由于本机内存为16G,这里就设置成8G(实际并未达到最大内存的80%)
-Xmx8192M   rem -Xms与-Xmx设成一样的值,避免JVM因为频繁的GC导致性能大起大落
-Xss512k 
-XX:+AggressiveOpts 
-XX:+UseBiasedLocking 
-XX:PermSize=64M    rem 内存永久保留区域 
-XX:MaxPermSize=300M     rem 内存永久保留区域 
-XX:+DisableExplicitGC  rem 禁止System.gc(),免得误调用gc方法影响性能
-XX:MaxTenuringThreshold=31 
-XX:+UseConcMarkSweepGC 
-XX:+UseParNewGC   rem 对年轻代采用多线程并行回收,这样收得快;
-XX:+CMSParallelRemarkEnabled  rem 带CMS相关的是并发回收(CMS垃圾收集器)
-XX:+UseCMSCompactAtFullCollection  rem 带CMS相关的是并发回收(CMS垃圾收集器)
-XX:LargePageSizeInBytes=128m  
-XX:+UseFastAccessorMethods 
-XX:+UseCMSInitiatingOccupancyOnly rem 带CMS相关的是并发回收(CMS垃圾收集器)
-Djava.awt.headless=true
Linux下修改TOMCAT_HOME/bin/catalina.sh
JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m
windows下修改TOMCAT_HOME/bin/catalina.bat
set JAVA_OPTS=-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m

参数讲解

-server:启用 JDK的 server 版本;
-Xms:Java虚拟机初始化时堆的最小内存,一般与 Xmx配置为相同值,这样的好处是GC不必再为扩展内存空间而消耗性能;
-Xmx:Java虚拟机可使用堆的最大内存;
-XX:PermSize:Java虚拟机永久代大小;
-XX:MaxPermSize:Java虚拟机永久代大小最大值;

  • 并发调优

打开tomcat的conf文件夹下的server.xml

<!-- 调优之前的配置 tomcat默认配置
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>
	-->
<!-- 调优之后的配置 -->
    <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"/>

参数讲解

maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码

  • 缓存优化

compression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType 压缩类型
connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值