日期:2014-05-16  浏览次数:20801 次

linux下tomcat优化

一、安装tomcatapr

1. 下载tomcat apr,下载地址:http://apr.apache.org/,下载apr-util-1.3.11.tar.gz,apr-iconv-1.2.1.tar.gz,apr-1.4.4.tar.gz。

2. 解压apr,运行命令:

tar -zxvf apr-util-1.3.11.tar.gz 
tar zxvf apr-iconv-1.2.1.tar.gz 
tar zxvf apr-1.4.4.tar.gz

?

?3. 安装apr,运行命令:

tar zxvf apr-1.4.2.tar.gz 
cd apr-1.4.2 
./configure --prefix=/usr/local/www/apr 
make 
make install

?4. 安装apr-iconv:

tar -zxvf apr-iconv-1.2.1.tar.gz 
cd apr-iconv-1.2.1 
./configure --prefix=/usr/local/www/apr-iconv --with-apr=/usr/local/www/apr 
make
make install

?5. 安装apr-util:

tar zxvf apr-util-1.3.9.tar.gz 
cd apr-util-1.3.9 
./configure --prefix=/usr/local/www/apr-util --with-apr=/usr/local/www/apr --with-apr-iconv=/usr/local/www/apr-iconv/bin/apriconv 
make 
make install

?6. 下载tomcat-native,下载网址:http://tomcat.apache.org/download-native.cgi

?7. 上传tomcat-native 至tomcat目录下的bin目录中,运行命令:

chmod +x tomcat-native-1.1.20-src.tar.gz

?8.? 解压tomcat-native,运行命令:

tar –zxvf tomcat-native-1.1.20-src.tar.gz

?9.? 进入native目录,运行命令:

cd tomcat-native-1.1.20-src/jni/native

10.安装tomcat-native,运行命令:

./configure --with-apr=/usr/local/www/apr --with-java-home=/usr/local/java 
make 
make install

11.修改profile文件,添加以下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

二、Tomcat内存设置
进入tomcat目录下的bin目录,运行命令:

vi startup.sh

??添加以下代码,保存退出,重新启动tomcat。

JAVA_OPTS=’-Xms256m -Xmx1024m’

Xms:初始化内存

Xmx:最大使用内存

三、修改tomcat配置文件

打开tomcat/conf/目录

?

修改server.xml文件:

1.找到“<Server port="8005" shutdown="SHUTDOWN">”

修改为:

<Server port="8995" shutdown="shut_down_tc"> 

端口和关闭命令根据情况修改,目的是防止别人调用默认关闭命令来关闭tomcat。

2.找到“<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />”。

修改为:

<!-- <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> -->

注释掉tomcat的虚拟机内存监听器,因为这个监听器很有可能误报内存消耗过大或内存溢出等情况。

3.修改tomcat并发连接数

tomcat6.0 默认并发数为200,查看方法和JVM一样,查看http-8080选项

Max threads: 200

vi /usr/local/www/tomcat/conf/server.xml

?修改前:

? <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" connectionTimeout="20000" />

?修改后:?

<Connector port="8080" 
protocol="HTTP/1.1" 
maxHttpHeaderSize="8192" 
useBodyEncodingForURI="true" 
maxThreads="1000"
 redirectPort="8443" 
enableLookups="false" 
compression="on" 
compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 
connectionTimeout="20000" 
disableUploadTimeout="true" /> 

?

port Tomcat服务器监听的端口号。

maxHttpHeaderSize Http的Header的最大限制。

enableLookups="false" 使用允许DNS查询,通常情况下设置为false。

redirectPort 服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号。

maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。

acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。

connectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

minSpareThreads Tomcat初始化时创建的线程数。

maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

compression="on" 打开压缩功能

compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB

compressableMimeType 压缩类型

?

4.修改日志文件目录

找到“<Valve className="org.apache.cata