美文网首页我用 Linux程序员 从0到1_后端开发
服务器搭建十二——Tomcat7安装及优化配置

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

作者: 十二楼中月 | 来源:发表于2018-07-03 10:58 被阅读22次

    安装环境

    • 操作系统: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架构解析.刘光瑞

    相关文章

      网友评论

        本文标题:服务器搭建十二——Tomcat7安装及优化配置

        本文链接:https://www.haomeiwen.com/subject/aprduftx.html