您的位置:首页 > 运维架构 > Tomcat

tomcat

2012-05-03 10:13 148 查看
进入tomcat的根目录,应该会发现有webapps、conf、log、bin、temp和work这几个目录,和Listen等几个文件。

那么我先来说一下每个目录的作用:

1、webapps:这个目录就是通常我们存放项目的目录,tomcat的默认路径是存放在这个目录下的。如果要修改也可以在conf目录下的配置文件中进行修改;

2、conf:也就是我们常说的配置文件目录,可以看做linux系统下的etc目录,所有tomcat的配置文件都在这个目录下;

3、log:顾名思义就是日志目录,这个目录是存放tomcat的默认catalina.out日志文件的目录,还会有类似apache的access.log这样的日志文件;

4、bin:命令目录,各种tomcat的启动命令就是保存在这个目录的;

5、temp:这个目录下感觉都是没用的东西- -但是盲目删除又有可能出问题;

6、work:这个目录保存了编译过的class文件,可以算是一个临时文件目录吧。

从上面可以看出要是进行优化那么肯定逃不掉conf这个目录了,进入conf目录,可以看到我们要修改的server.xml文件了,这个文件就是我们进行初步优化的目标了。

打开server.xml文件,根据tomcat打开的端口我们可以看到下面的这样的字段:(PS:我这里的例子是我们这里修改后的)

<Connector port="8080" protocol="HTTP/1.1"
maxThreads="5000" minSpareThreads="1000" maxSpareThreads="1000"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="15000" disableUploadTimeout="true" maxKeepAliveRequest="1"/>

这里面的字段的含义:

maxThreads="5000":tomcat接收的最大链接数位5000个;

minSpareThreads="1000":可以理解成在系统空闲时最小保留1000个线程;

maxSpareThreads="1000":这个同上,但是这个事系统空闲时最多保留1000个线程;

enableLookups="false":tomcat是否通过DNS查询访问的主机是否为真是主机,ture为开启,false为关闭;

redirectPort="8443":tomcat下的SSL连接端口,等同于apache下的443;

acceptCount="100":当tomcat起动的线程数达到最大时,接受排队的请求个数;

connectionTimeout="15000";连接的超时时间,注意这里的单位是ms(毫秒);

disableUploadTimeout="true"

maxKeepAliveRequest="1"

如同上面的解说,那么我们就可以根据我们的需求来调整了。首先根据应用平时的平均访问数量设置空闲状态下的连接数,这样可以有效地减少新线程创建时消耗的时间,这里就是一个明显的消耗资源节省时间的方法,同时这个参数还要根据系统的硬件资源来进行微调- -我们这里全是16G内存的Dell R710,所以- -!!!

也许有人要问了,为什么要把空闲状态下的最大线程和最小线程数量设置一样,这个是tomcat-apache官方给出的解释,同样在oracle的JVM里面也有这样的说明,说是这样设置可以有效提高性能。

其次要注意的就是最大链接数了,这个数字同样需要根据系统的内存资源来调整,注意调整这个的同时还要调整ulimit -SHn的参数,不然就算你tomcat可以接受65535个连接,但是服务器接受1024个连接后就不在创建连接套接字了,那么你的配置也是无效的。

上面最后两项是用来减少tomcat的keepalive时间的,可以有效地减少netstat里面处于time_wait状态的连接的数量,增加系统回收速度。

其它的根据介绍一点一点的配置就OK了,总的来说tomcat的基本优化就是这些,再进行catalina的优化,那么就不是在conf目录里面了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息