Apache Tomcat 性能调优

发布于 2021-09-09  68 次阅读


又是一个老生常谈的话题,运维角度来看,虽然不能修改程序来提升性能降低负载,但是也是可以修改一些配置来优化一下tomcat 性能

一、Tomcat 并发优化线程优化 ,默认单线程运行 效率比较低

Tomcat 目录下 /conf/server.xml 文件 ,找到<Connector port="8080" 这样的关键字 修改< ..../> 尖括号内的内容:

<Connector
port="8080"  
protocol="org.apache.coyote.http11.Http11Nio2Protocol" 
enableLookups="false"
maxThreads="1000"
minSpareThreads="100"
acceptCount="1500"
disableUploadTimeout="true"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"
compression="on"
compressionMinSize="1024"
useSendfile="false"
noCompressionUserAgents="gozilla, traviata"
compressibleMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript "
/>

参数说明:

  • org.apache.coyote.http11.Http11Nio2Protocol:调整工作模式为Nio
  • maxThreads:最大线程数,默认150。增大值避免队列请求过多,导致响应缓慢。
  • minSpareThreads:最小空闲线程数。
  • acceptCount:当处理请求超过此值时,将后来请求放到队列中等待。
  • disableUploadTimeout:禁用上传超时时间
  • connectionTimeout:连接超时,单位毫秒,0代表不限制
  • URIEncoding:URI地址编码使用UTF-8
  • enableLookups:关闭dns解析,提高响应时间
  • compression:启用压缩功能
  • compressionMinSize:最小压缩大小,单位Byte
  • compressibleMimeType :压缩的文件类型

二、Tomcat内存优化

Tomcat内存优化主要是对 Tomcat 启动参数优化,

在 Tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数,如果没有设置过的话,直接在配置文件中 搜索JAVA_OPTS ,然后找到相关的配置附近 新启一行 写入配置

JAVA_OPTS="-server -XX:PermSize=2048M -XX:MaxPermSize=4096m -Xms8192m -Xmx8192m“

-server:启用 JDK的 server 版本;
-XX:PermSize:Java虚拟机永久代大小;
-XX:MaxPermSize:Java虚拟机永久代大小最大值;
-Xms:Java虚拟机初始化时堆的最小内存,一般与 Xmx配置为相同值,建议设置为可用内存的最大值的80%;
-Xmx:Java虚拟机可使用堆的最大内存;


因为喜欢所以折腾。。。