码迷,mamicode.com
首页 > 其他好文 > 详细

tomcat生产环境优化

时间:2014-11-15 00:01:15      阅读:569      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   color   ar   os   使用   sp   java   

使用下面几步来提高Tomcat服务器的性能。

  1. 增加JVM堆内存大小
  2. 修复JRE内存泄漏
  3. 线程池设置
  4. 压缩
  5. 数据库性能调优
  6. Tomcat本地库
  7. 其它选项

1.JVM优化 

在Tomcat 的启动脚本 catalina.sh中添加如下的启动参数:
   JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024  -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512-XX:MaxPermSize=512m -XX:+DisableExplicitGC"

2.tomcat日志提高Tomcat 的日志级别 

      tomcat日志有以下5种:

      1.catalina.2013-07-03.log 或者 catalina.out   引擎的日志文件

      2.host-manager.2013-07-03.log  

      3.localhost.2013-07-03.log   Tomcat下内部代码丢出的日志

      4. manager.2013-07-03.log   默认manager应用日志

      5.access日志  客户端访问日

 

      将logging.properties 中的org.apache.juli.FileHandler.level有默认的FINE 改为INFO。  

     Logging settings in Production

       • conf/logging.properties

    .handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

      • Causes duplicate logging 
      • May fill up catalina.out (no rotation)

       Change to

       • conf/logging.properties

       .handlers = 1catalina.org.apache.juli.FileHandler

3.Tomcat最大连接数

           在Tomcat 的配置文件 server.xml中修改最大连接数、超时时间等参数:
 

         <Connector port="8080" protocol="HTTP/1.1"

               enableLookups="false" disableUploadTimeout="true"

               compression="on" compressionMinSize="2048"

               compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"

               connectionTimeout="20000"

               maxThreads="3000" acceptCount="300"

               URIEncoding="utf-8"

               redirectPort="8443" />

4.catalina.out和访问日志分割

     使用logrotate切割catalina.out

     cd      /etc/logrotate.d

     sudo vim tomcat

 /home/rideo/apache-tomcat-7.0.50/logs/catalina.out {

       rotate 30

       create

       daily

      copytruncate

      compress

      notifempty

       missingok

  }

rotate 7 表示保留7天的备份文件
daily 表示每天整理一次
copytruncate 表示先复制log文件的内容,然后再清空
compress 表示压缩备分文件
missingok 表示如果找不到log文件也没OK
notifempty 表示如果log文件是空的,就不进行rotate

判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码  缺省的crontab来每天运行logrotate

#/etc/cron.daily/logrotate
#! /bin/sh

/usr/sbin/logrotate /etc/logrotate.d/tomcat

 

定期清理访问日志

建立清除日志文件的shell脚本,文件名为clean_log,存放目录任意

 

#! /bin/bash

logdir=/home/rideo/apache-tomcat-7.0.50/logs

cd ${logdir}

declare -i filesum=`ls localhost_access_log* | wc -l`

declare -i delnum=$filesum-30

if [ "${delnum}" -ge 1 ];then

  rm -rf `ls -tr localhost_access_log* | head -${delnum}`

fi

 

declare -i catalinasum=`ls catalina.*.log | wc -l`

declare -i delcatlinasum=$catalinasum-30

if [ "${delcatlinasum}" -ge 1 ];then

  rm -rf `ls -tr catalina.*.log | head -${delcatlinasum}`

fi

 

declare -i hostmanagersum=`ls host-manager.*.log | wc -l`

declare -i delhostmanagersum=$hostmanagersum-30

if [ "${delhostmanagersum}" -ge 1 ];then

    rm -rf `ls -tr host-manager.*.log | head -${delhostmanagersum}`

fi

 

declare -i localhostsum=`ls localhost.*.log | wc -l`

declare -i dellocalhostsum=$localhostsum-30

if [ "${dellocalhostsum}" -ge 1 ];then

    rm -rf `ls -tr localhost.*.log | head -${dellocalhostsum}`

fi

 

declare -i managersum=`ls manager.*.log | wc -l`

declare -i delmanagersum=$managersum-30

if [ "${delmanagersum}" -ge 1 ];then

     rm -rf `ls -tr manager.*.log | head -${delmanagersum}`

fi

 


添加运行权限:chmod 755  clean_log

再添加为自动运行任务:vi /etc/crontab,添加:
  01 04   * * *  root  /home/rideo/dev/clean_log
 
脚本附件 : clean_log.sh

5  压缩

Tomcat有一个通过在server.xml配置文件中设置压缩的选项。压缩可以在connector像如下设置中完成,

 

1
2
3
4
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8181" compression="500"
compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />

 

在前面的配置中,当文件的大小大于等于500bytes时才会压缩。如果当文件达到了大小但是却没有被压缩,那么设置属性compression="on"。否则Tomcat默认设置是“off”。

6.数据库性能调优

7 Tomcat原生库

        Tomcat的原生库基于Apache可移植运行时(Apache Portable Runtime简称APR),给程序员提供了超强的扩展性和性能,在产品运作中帮助融合原生的服务器技术以展现最佳的性能。

 

8.性能测试

       用ab进行基准调校

                   ab -k -n 100000 -c 149  http://tomcathost:8080

 

9.tomcat硬件配置

      4核4G 20G硬盘

 

tomcat生产环境优化

标签:style   http   io   color   ar   os   使用   sp   java   

原文地址:http://www.cnblogs.com/copperfield/p/4098342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!