首页 > 代码库 > linux安装tomcat及优化

linux安装tomcat及优化

Tomcat支持三种接收请求的处理方式:BIO、NIO、APR
1>、BIO模式:阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作(即Java.io包及其子包)。Tomcat7以下版本默认情况下是以bio模式运行的,由于每个请求都要创建一个线程来处理,线程开销较大,不能处理高并发的场景,在三种模式中性能也最低。启动tomcat看到如下日志,表示使用的是BIO模式:
技术分享
2>、NIO模式:是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,它拥有比传统I/O操作(bio)更好的并发运行性能。要让Tomcat以nio模式来运行比较简单,只需要在Tomcat安装目录/conf/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" />

注意:Tomcat8以上版本,默认使用的就是NIO模式,不需要额外修改
技术分享
3>、apr模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高并发应用的首选模式。
启用这种模式稍微麻烦一些,需要安装一些依赖库,下面以在CentOS6.5版环境下Tomcat-7.0.11为例,介绍安装步聚:

前提需要配置JDK   JAVA_HOME

tar -zxvf apache-tomcat-7.0.11.tar.gz

 

安装apr    官网http://apr.apache.org/download.cgi

(1)安装apr

mkdir  /root/software
cd /root/software
wget http://mirror.bit.edu.cn/apache/apr/apr-1.4.6.tar.gz
tar zxvf apr-1.4.6.tar.gz 
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make
make install 

安装apr的时候出现

./configure --prefix=/usr/local/apr

rm: cannot remove `libtoolT‘: No such file or directory

解决办法:

vim configure

在30048行 #    $RM "$cfgfile" 前面加#注释掉

在重新./configure

(2)安装apr-iconv

cd /root/software
wget http://mirror.bit.edu.cn/apache/apr/apr-iconv-1.2.1.tar.gz
tar -zxvf apr-iconv-1.2.1.tar.gz
cd apr-iconv-1.2.1
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr 
make
make install

(3)安装apr-util

cd /root/software
wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.4.1.tar.gz
tar zxvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr  --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv 
make
make install

 

(4)安装tomcat-native

//tomcat-native-1.1.27-src.tar.gz  这个我装的tomcat里边就自己带了,在bin目录下,如果你们没有找到,去网上下一个就行了。。具体哪下我也不知道⊙﹏⊙b汗,找apache的官网吧

cd /usr/local/tomcat1/bin   
tar zxvf tomcat-native.tar.gz 
cd tomcat-native-1.1.27-src/jni/native   
./configure --with-apr=/usr/local/apr
make 
make install

(5)设置 apr 的环境变量

cd /usr/local/tomcat1/bin

vi catalina.sh

在文件的#!/bin/sh下添加如下内容:

#!/bin/sh

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

 

一、设置Tomcat连接器池。

cd /usr/local/tomcat1/conf
vi server.xml

替换以下内容:

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="1000" minSpareThreads="350" />

<Connector port="8080"
        protocol="org.apache.coyote.http11.Http11AprProtocol"
        executor="tomcatThreadPool"
        compression="on"
        compressionMinSize="2048"
        maxThreads="30000"
        minSpareThreads="512"
        maxSpareThreads="2048"
        enableLookups="false"
        redirectPort="8443"
        acceptCount="35000"
        debug="0"
        connectionTimeout="40000"
        disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true" />

 

 二、Linux下修改JVM内存大小及优化

要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,添加

#JAVA_OPTS="-Xms1024m -Xmx1024m -Xss1024K -XX:PermSize=768m -XX:MaxPermSize=1024m"
JAVA_OPTS="
-Xms1024M
-Xmx1024M
-Xss512k
-XX:+AggressiveOpts
-XX:+UseBiasedLocking
-XX:PermSize=256M
-XX:MaxPermSize=512M
-XX:+DisableExplicitGC
-XX:MaxTenuringThreshold=31
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC  
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m  
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.awt.headless=true"

 

三、查看当前系统open files的默认值:

ulimit -a

没改过是1024

 

 

  搜了一下,据说tomcat有默认的日志分割功能,能每天自动生成类似catalina.2010-10-08.log的文件,但是默认catalina.out文件却一直增长.据说到一定大小时占磁盘空间(废话),影响性能,且会报错,这点暂时没发现.其他的查了一下logs文件确实如此. 
    解决方法,使用cronolog进行日志切割,据说cronolog是个切割日志的小工具,可以切割很多种日志文件,有空得试试.具体做法如下: 
1、下载(最新版本) 
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz 
2、解压缩 
# tar zxvf cronolog-1.6.2.tar.gz 
3、进入cronolog安装文件所在目录 
# cd cronolog-1.6.2 
4、运行安装 (如没有安装gcc,则先安装gcc)

安装gcc    
yum install gcc

--------------------------------
# ./configure 
# make 
# make install 
5、查看cronolog安装后所在目录(验证安装是否成功) 
# which cronolog 
一般情况下显示为:/usr/local/sbin/cronolog 

6.进入Tomcat的bin目录,打开catalina.sh文件,找到tomcat启动的相关行,或者你直接查找catalina.out,一般我们修改下面行中的内容, 

在else里修改 
org.apache.catalina.startup.Bootstrap “$@” start  \ 
>> “$CATALINA_BASE”/logs/catalina.out 2>&1 & 
为 
org.apache.catalina.startup.Bootstrap “$@” start 2>&1 \ 
| /usr/local/sbin/cronolog “$CATALINA_BASE”/logs/catalina.%Y-%m-%d.out >> /dev/null & 

注释掉                    #touch "$CATALINA_OUT"


完成之后重起Tomcat就可以了,在logs目录下可以看到catalina.年-月-日.out的日志,是按日生成的。

 

linux安装tomcat及优化