服务器搭建十二——Tomcat7安装及优化配置

安装环境

• 操作系统:Centos6.4 x64
• JDK版本:HotSpot JDK1.7.0_79
• Tomcat版本: tomcat-7.0.79
• Tomcat APR源码包: tomcat-native-1.1.34

1. 安装JDK

我使用的版本:jdk-7u79-linux-x64.rpm

1) 查询是否已安装本版本JDK
java -version
cd到HotSpot JDK1.7.0_79版本安装包所在文件夹
2) 安装
rpm****-ivh****jdk-7u79-linux-x64**.rpm
JDK将默认安装在文件夹/usr/java/jdk1.7.0_79中
3) 修改环境变量
vim /etc/profile
在文件最下方添加以下内容
JAVA_HOME=/usr/java/jdk1.7.0_79
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
保存文件后,使环境变量生效
source /etc/profile
4) 查询当前JDK是否为,如果输出包含HotSpot和1.7.0_79说明安装成功
[root@Centos src]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

2. 安装Tomcat

我使用的版本 tomcat-7.0.79 tomcat-native-1.1.34

  • 安装Tomcat
cd到Tomcat标准包目录
解压
tar -zxvf tomcat-7.0.79.tar.gz
  • Tomcat连接器
    Tomcat有三种连接器:APR、NIO、BIO,性能上APR、NIO要优于BIO,一般情况下APR略优于NIO。因此建议使用APR连接器。通过安装Tomcat Native Library,可以让Tomcat开启APR。
安装依赖:yum install apr-devel openssl-devel glibc gcc
cd到Tomcat APR源码包目录
解压
tar -zxvf tomcat-native-1.1.34-src.tar.gz
进入目录
cd tomcat-native-1.1.34-src/jni/native
配置,将--with-java-home值修改为JDK安装路径, native库将被安装在--prefix指定目录下  
./configure --with-apr=/usr/bin/apr-1-config \
            --with-java-home=/usr/java/jdk1.7.0_79 \
            --with-ssl=yes \
            --prefix=/usr/local/bin/tomcat-native-1.1.34/
安装
make && make install

3. Tomcat配置

  • Tomcat标准包默认已进行过配置,可以跳过本步骤
修改tomcat的bin/setclasspath.sh 在最上面添加以下内容
# 设置$CATALINA_HOME/lib目录,才能在该目录中查找native library
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/bin/tomcat-native-1.1.34/lib
export LD_LIBRARY_PATH
# 设置JAVA_HOME,该JAVA_HOME最好与编译native library的Java是同一个
JAVA_HOME=/usr/java/jdk1.7.0_79
export JAVA_HOME
  • JVM优化配置
    优化内存使用、回收机制和日志记录情况
修改tomcat的bin/ catalina.sh 在最上面添加以下内容(Tomcat标准包已添加)
JAVA_OPTS="-server –Xms4G –Xmx4G -Xss1024K -XX:PermSize=128M -XX:MaxPermSize=4096M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -Xloggc: /home/app/web/tomcat /logs/gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/app/web/tomcat /logs/"
说明
1.  以上配置默认的新生代+老生代内存为4G,需根据实际需要修改。如果是该Tomcat专用服务器建议配置为服务器内存的50-75%(修改–Xms和–Xmx)。JVM一般最大占用内存为Xmx+ XX:MaxPermSize+最大线程数* Xss
2.  采用了CMS垃圾回收机制,适合于响应时间要求高的场景
3.  记录了JVM垃圾回收日志和OOM异常日志,垃圾回收日志位于-Xloggc指定的文件,OOM内存转储文件位于-XX:HeapDumpPath指定的目录下,需根据tomcat实际部署位置修改这两个参数
  • Tomcat优化配置

此处只简单说明了下Tomcat配置

修改tomcat的conf/server.xml 中的线程池(Executor)和连接器(Connector)配置内容
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="200" minSpareThreads="100" maxQueueSize="700" prestartminSpareThreads="true"/>
<Connector port="82" executor="tomcatThreadPool" protocol="HTTP/1.1" 
                connectionTimeout="20000" 
                URIEncoding="UTF-8" 
                enableLookups="false"
                 compression="on"   
            compressionMinSize="2048"   
            noCompressionUserAgents="gozilla, traviata"               compressableMimeType="text/html,text/xml,application/javascript,text/css,text/plain,text/json"/>
配置说明:
•   Executor
1.  name:线程池执行器的名称
2.  namePrefix:线程名称前缀
3.  maxThreads:最大线程数,默认200,实际设置需要通过针对使用的服务器进行性能测试找到最优值。一般服务器建议设置为200,服务器性能更好可以设置更高。
4.  minSpareThreads:最小保持线程数,默认25。建议设置为100。
5.  maxQueueSize:最大等待任务数,默认为Integer.MAX_VALUE。
6.  prestartminSpareThreads:是否在Tomcat启动时初始化minSpareThreads数量的线程,默认为false,建议开启,进行预热。
•   Connector
1.  port:对外服务端口,根据需要配置
2.  executor线程池,与配置的Executor的name相同
3.  protocol:使用协议, 配置为HTTP/1.1时,如果检测到支持APR则使用APR
4.  connectionTimeout:连接超时时间,单位毫秒
5.  URIEncoding:URL编码
6.  enableLookups:为性能设置为false,为ture时执行request.getRemoteHost()将访问DNS查找客户机名,为false将只返回IP
7.  compression:是否开启gzip压缩
8.  compressionMinSize:压缩的最小字节数,对低于此值的内容不进行压缩
9.  noCompressionUserAgents:不压缩的浏览器agent,部分老旧浏览器不支持gzip
10. compressableMimeType:对配置的mime类型进行压缩(需满足浏览器和压缩的最小字节数要求)

特别说明
关于Tomcat的优化配置和JVM的优化配置,不是简单几句话既可以说明的,后续研究之后在单独写文章吧。下面这个是公司内部的一个培训资料可以用来先了解下优化。至于tomcat的配置文件也是很重要的一部,本文只简单说明了线程池和连接池,还有日志、部署方式等等,完全可以很厚的一本书来。Tomcat优化PPTTomcat架构解析.刘光瑞

    原文作者:十二楼中月
    原文地址: https://www.jianshu.com/p/44fa14952c57
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞