实战Tomcat性能优化

前言

由于不同的硬件配置导致默认的tomcat配置无法达到最佳的性能,导致我们需要对tomcat的进行相应的配置调整。

Tomcat内存优化

配置信息:JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’

将以上配置信息在tomcat中的catalina.sh 中配置如下图所示:

参数描述:

-server 启用jdk 的 server 版;

  -Xms java虚拟机初始化时的最小内存;

  -Xmx java虚拟机可使用的最大内存;

  -XX: PermSize 内存永久保留区域

-XX:MaxPermSize 内存最大永久保留区域

根据不同的配置硬件设备可适当调整参数的大小,内存大、cpu核数多,可对相应的参数设置过大,反之设置适当偏小。

Tomcat并发优化

并发优化主要在conf中server.xml文件中配置。配置代码如下:

<Connector port="8080"

  protocol="HTTP/1.1"

  maxHttpHeaderSize="8192"

  minProcessors="100"

  maxProcessors="1000"

  acceptCount="1000"

  redirectPort="8443"

disableUploadTimeout="true"/>

参数说明

  maxThreads 客户请求最大线程数

  minSpareThreads Tomcat初始化时创建的 socket 线程数

  maxSpareThreads Tomcat连接器的最大空闲 socket 线程数

  enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名

  redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口

  acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )

  connectionTimeout 连接超时

  minProcessors 服务器创建时的最小处理线程数

  maxProcessors 服务器同时最大处理线程数

  URIEncoding URL统一编码

效果图如下:

Tomcat缓存优化

缓存优化主要在conf中server.xml文件中配置。配置代码如下:

  <Connector port="8080"

  protocol="HTTP/1.1"

  maxHttpHeaderSize="8192"

  maxThreads="1000"

  minSpareThreads="100"

  maxSpareThreads="1000"

  minProcessors="100"

  maxProcessors="1000"

  enableLookups="false"

  compression="on"

  compressionMinSize="2048"

  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

  connectionTimeout="20000"

  URIEncoding="utf-8"

  acceptCount="1000"

  redirectPort="8443"

  disableUploadTimeout="true"/>

参数说明

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, 表示不限制建立客户连接的时间

效果图如下:

总结

配置了内存、并发、缓存优化后,同配置硬件设备可提高多倍有效访问率。

原文地址:https://www.cnblogs.com/qfchen/p/11394863.html