码迷,mamicode.com
首页 > 其他好文 > 详细

Tomcat优化配置

时间:2018-09-19 16:10:43      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:path   als   role   lookup   jmx   run   提高   单位   linux系统   

1、环境:

  系统:Windows、Linux

  Tomcat版本:9

 

2、编码与性能调优

  server.xml文件:

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

 

3、内存配置

  打开$TOMCAT_HOME/bin/catalina.sh文件(Windows系统是catalina.bat文件),大楖在250行左右,在JAVA_OPTS参数上添加内存参数设置即可

  catalina.sh:

JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256 -Djava.awt.headless=true"

  catalina.bat:

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -server -Xms2048m -Xmx2048m -XX:PermSize=128m -XX:MaxPermSize=256 -Djava.awt.headless=true"

  -server参数:表示以服务模式启动,启动速度会稍微慢一点,但性能会高很多。不加这个参数,默认是以客户端模式启动。 
  java.awt.headless=true参数:与图形操作有关,适用于Linux系统。如生成验证码,含义是当前使用的是没有安装图安装图形界面的服务器,应用中如果获取系统显示有关参数会抛异常,可通过jmap -heap proccess_id查看设置是否成功。

 

4、启用后台管理

  conf\tomcat-users.xml

<role rolename="manager-status"/>
<role rolename="manager"/>  
<role rolename="manager-jmx"/> 
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin"/>
<user username="admin" password="123" roles="manager,manager-gui,admin,manager-status,manager-jmx,manager-script"/>

  webapps\manager\META-INF\context.xml

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|\d+\.\d+\.\d+\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

 

5、修改进程名称

  setclasspath.bat,找到set _RUNJAVA=”%JRE_HOME%\bin\java”这一行。 将该行注释掉 ,然后在该行下面添加如下两行并进行保存:

copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\my_java.exe"
set _RUNJAVA="%JAVA_HOME%\bin\my_java"

  setclasspath.sh,找到_RUNJAVA="$JRE_HOME"/bin/java这一行, 并注释掉,然后在该行下面添加如两行并进行保存:

cp "$JAVA_HOME/bin/java" "$JAVA_HOME/bin/my_java"
_RUNJAVA="$JRE_HOME/bin/my_java"

 

  

Tomcat优化配置

标签:path   als   role   lookup   jmx   run   提高   单位   linux系统   

原文地址:https://www.cnblogs.com/voyager-fu/p/9674598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!