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" />-->