tomcat7实战调优笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat7实战调优笔记相关的知识,希望对你有一定的参考价值。

java -XX:+<option>:开启此参数指定的功能

java -XX:-<option>:关闭功能

-xx:<option>=<value>:给option指定的选项赋值



java -XX:+PrintFlagsFinal

显示所有支持的参数以及状态



java -D<name>=<value>:set a system property 

设置系统属性




sun jdk监控和故障处理工具


jps, jvm process status tool 显示指定系统内所有的hotspot 虚拟机进程的列表信息

jstat,jvm statistics monitoring tool 收集并显示hotsppt虚拟机各方面的运行数据

jinfo,显示hotspot正在运行虚拟机配置信息的

jmap:生成某hotspot虚拟机的内存转出快照

可视化工具

jconsole:java的监视与管理控制台

jvisualvm.虚拟机配置本身

tomcat各组件的关系:

<Server>

<Service>

<Connector />

<Engine>

<Host>

<Context></Context>

</Host>

</Engine>

</Service>

</Server>



server.xml 核心配置文件

tomcat-users.xml  用户配置文件

web.xml  默认的 应用程序部署描述符

context.xml  为上线文配置文件

logging.properties   日志程序部署程序

catalina.properties  定义内存属性的

catalina.policy   管理安全级别的


一般维护xml后缀的文件就可以了



localhost_access_log.2016-06-24.txt 是用户访问日志

catalina.out       程序启动日志


temp是临时文件目录 

webapps应用程序目录



调优

在catalina.sh文件第一行加下面代码

JAVA_OPTS=‘-Xms2048m -Xmx2048m‘

或者这行

JAVA_OPTS=‘-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC‘


默认BIO模式,是性能最差的模式,

推荐使用nio模式,还有种apr模式配置起来十分复杂

打开server.xml文件

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

  

  

  

改成

 <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" />

  

  

  

打开线程池server.xml

 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="150" minSpareThreads="4"/>

这段取消注释


并且更改

<Connector executor="tomcatThreadPool" port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"

               connectionTimeout="20000"

               redirectPort="8443" />

  

  

重点调优参数

最大连接数maxThreads="500" 

最小活跃连接数minSpareThreads="4" 建议设置100

调高最小连接数还要打开开关改成下面这样

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="500" minSpareThreads="100" prestartminSpareThreads="true"/>

    

最大队列等待请求数maxQueueSize,默认是无上限,根据业务调整

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"

        maxThreads="500" minSpareThreads="100" prestartminSpareThreads="true" maxQueueSize="50"/>


连接器调优

maxPostSize最大post限制,默认情况下是2M限制



关闭ajp协议,ajp是阿帕奇跟tomcat结合使用用到的协议,大多情况下使用nginx

注释掉ajp协议即可

 <!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->


以上是关于tomcat7实战调优笔记的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat7调优及JVM性能优化for Linux环境

jdk1.6 VM调优实战

tomcat7.0安装笔记

02 Maven 笔记:Eclipse下maven项目在Tomcat7和Jetty9中部署调试

实战--通过dockerfile本地编译tomcat镜像

tomcat7 1000并发量配置 tomcat7配置优化