zoukankan      html  css  js  c++  java
  • Tomcat配置优化

    一、tomcat内存优化

    打开bin下catalina.bat文件

     

    在文件的第一处非注释行出添加

    1 set JAVA_OPTS=-server -Xms2g -Xmx2g -Xss256k

      

    参数含义:

    -server:以server模式运行java程序

    -Xms:初始化堆内存大小

    -Xmx:堆内存最大容量

    -Xss:设定每个线程的堆栈大小

      JDK9之前ParallelGC作为默认垃圾回收器,优化配置JVM需要设置大量参数,诸如-XX:NewRatio、-XX:SurvivorRatio等等,但随着JDK不断更迭,繁琐的参数已经不再需要且不再支持。JDK9开始,G1作为默认的垃圾回收器,G1GC 不必明确设置新生代大小,其自动调优也十分可靠,对于停顿时间往往在长时间运行后可以达到预期效果。不建议进行过多的配置。

    二、tomcat线程池优化

    打开conf下server.xml

     

    全局搜索executor,在注释中可以找到,同节点位置添加:

    1 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" deamon="true"
    2       minSpareThreads="100" maxSpareThreads="300" maxThreads="600"
    3 maxQueueSize="1000000" maxIdleTime="60000"
    4        prestartminSpareThreads="true"/>

    然后搜索Connector,找到tomcat的http连接器,添加连接器与线程池关联

    1 <Connector port="8080" protocol="HTTP/1.1"
    2    connectionTimeout="20000"
    3    redirectPort="8443"
    4    executor="tomcatThreadPool" />

    参数含义:

    namePrefix:线程池中线程的命名前缀。

    deamon : 是否守护线程运行,默认为true 

    minSpareThreads:Tomcat线程池的最小空闲线程数,等于初始的线程数。

    maxSpareThreads:Tomcat最大空闲线程数,超过的会被关闭。

    maxThreads:Tomcat 可用于处理请求的最大线程数,默认是200。

    maxIdleTime :空闲线程的存活时间 默认为60s,当线程空闲超时后,线程被回收

    maxQueueSize :任务队列最大大小,默认为Integer.MAX_VALUE  (2147483647 )这太大了 有点不合适

    prestartminSpareThreads :是否在tomcat启动时就创建minSpareThreads个线程放入线程池,默认为false

    executorTerminationTimeoutMillis :在停止executor时,等待请求处理线程终止的超时时间

    三、Tomcat连接器优化

    打开conf下server.xml

     

    搜索Connector,找到tomcat的http连接器,添加参数如下

    1 <Connector port="8080" protocol="HTTP/1.1"
    2                connectionTimeout="20000"
    3                redirectPort="8443" 
    4                executor="tomcatThreadPool"
    5                maxConnections="10000"
    6                acceptCount="1000"
    7                enableLookups="false" />

    参数含义:

    maxConnections:最大连接数,当达到该值后,服务器接收但不会处理更多请求,额外的请求将会进入TCP等待队列。默认值为8192。

    acceptCount:最大排队等待数,即连接数达到maxConnections后的TCP等待队列。默认为100。

    enableLookups: request.getRemoteHost()获取远程计算机ip,Tomcat9默认为关闭。

    四、tomcat日志优化

    打开conf目录下logging.properties文件

     

    搜索所有编码设置行,进行注释即可

     

    原理:由于tomcat9开始默认为UTF-8编码,鉴于windows默认本地编码不同,会出现日志乱码,解决方法为注掉tomcat配置的编码,这样tomcat就会调用系统默认编码。

    五、Tomcat安全优化(适用于生产环境)

    移除webapps目录下的所有应用,防止server管理带来的安全漏洞

     

    禁用远程shutdown的端口

    1 <Server port="-1" shutdown="SHUTDOWN">

    或改变shutdown指令 

    1 <Server port="8005" shutdown="tomcat_shutdown">

    六、Tomcat部署优化(适用于测试环境) 

    1,配置tomcat管理用户

    在tomcat配置文件目录找到tomcat-users.xml

     

    在配置文件tomcat-users标签内添加下列内容

    1 <role rolename="manager-script"/>
    2 <user username="root" password="root" roles="manager-script"/>

    2,开启管理用户通过网络远程热部署 

    在conf/Catalina/localhost目录中建立manager.xml文件

     

    编辑manager.xml文件内容为

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager">
    3     <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
    4 </Context>

    3,开发环境tomcat插件配置 

    打开开发环境中maven项目pom文件,找到maven插件tomcat7-maven-plugin,进行相应的参数配置

     1 <plugin>
     2     <groupId>org.apache.tomcat.maven</groupId>
     3     <artifactId>tomcat7-maven-plugin</artifactId>
     4     <version>2.2</version>
     5     <configuration>
     6         <url>http://127.0.0.1:8080/manager/text</url>
     7         <username>root</username>
     8         <password>root</password>
     9         <update>true</update>
    10         <path>/centerbusiness</path>
    11     </configuration>
    12 </plugin>

     

  • 相关阅读:
    Linux IO接口 监控 (iostat)
    linux 防火墙 命令
    _CommandPtr 添加参数 0xC0000005: Access violation writing location 0xcccccccc 错误
    Visual Studio自动关闭
    Linux vsftpd 安装 配置
    linux 挂载外部存储设备 (mount)
    myeclipse 9.0 激活 for win7 redhat mac 亲测
    英文操作系统 Myeclipse Console 乱码问题
    Linux 基本操作命令
    linux 查看系统相关 命令
  • 原文地址:https://www.cnblogs.com/guanghe/p/13603631.html
Copyright © 2011-2022 走看看