1)删除原webapps下的ROOT下所有内容(这个是tomcat管理工具的东西,没有必要保留)
2)禁用tomcat管理(默认是禁用的)
3)降权启动(可以使用tomcat用户启动,需要catalina.sh修改)
注意:严格遵守目录755和文件644
bin、conf、lib、webapps给予root用户,有时候需要给conf目录tomcat用户权限,因为在启动时会有配置文件的创建
tmp、logs、work目录给予tomcat用户(用户存放临时文件)
4)关闭war包自动部署(防止被植入病毒)
server.xml文件修改:unpackwars="false" autoDeploy="false"
5)关闭不必要的端口:
8005端口可以进行注释或者将shutdown字段更改为其他。
使用了nginx+tomcat,请关闭8009端口,
如果使用了apache+tomcat,请关闭8080端口。
6)禁止目录列表(tomcat7和8默认是禁止的)
7)tomcat和jdk最好版本统一
1)一般而言JDK版本越高,性能也会越好,开发新项目最好使用较新的jdk版本
2)内存优化
说道内存的优化,主要是针对tomcat的启动参数优化,tomcat的启动脚本:catalina.sh
通过在这个脚本中设置JAVA_OPTS参数,来实现tomcat性能的调优
下面对参数进行一个总结:
-server 启用JDK的server版,都要加上这个参数
-Xms java虚拟机初始化时最小的内存
-Xmx java虚拟机可以使用的最大的内存
-XX:PermSize=512m 内存永久保留区(堆栈)
-XX:MaxPermSize=512m 内存最大永久保留区(堆栈)
生产环境中一般情况将xms和xmx设置为一样大,这样不用再让系统再分配内存给java虚拟机,一般设置为系统的70%。这个是不是硬性规定的,这个还要看你的项目及系统多少内存,最好使用监控用来定位。
-Xss 128k 设置每个线程的堆栈大小为128k。
-XX:NewRatio=4 设置年轻代和老年代的比值为4
-XX:SurvivorRatio=4 设置年轻代中Eden区和Survivor区大小比为4
-XX:MaxTenuringThreshold=0 设置垃圾最大年龄为0
-XX:+UseParalleIGC 选择垃圾收集器为并行收集器
-XX:ParalleIGCThreads=8 配置并行收集器的线程数
-XX:+UseParallelOldGC 配置年老带垃圾收集方式为并行收集
-XX:+UseAdaptiveSizePolicy 并行收集器会自动选择年轻代区大小和相应的Survivor区比例,已达到目标系统规定的最低响应时间见或者收集频率等,此值建议使用并行收集器时,一直打开。
3)连接池
(可以多个tomcat公用一个连接池)以下是个案例:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="100"
prestartminSpareThreads="true" maxQueueSize="100"
/>
name是线程池的名字,maxprefix:线程前缀
maxThreads:最大连接数
minSpareThreads:初始化时线程数
prestartminSpareThreads:true,如果为false,则minSpareThreads无效
maxQueueSize:队列数(5.5版本以前),acceptCount:最大队列数
其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
原文地址:http://blog.51cto.com/laodou/2122045