tomcat生产环境优化

使用下面几步来提高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硬盘

时间: 2024-10-31 20:41:44

tomcat生产环境优化的相关文章

tomcat生产环境配置

window下, 在catalina.bat最前面: set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08; 一定加在catalina.bat最前面. linux下,在catalina.sh最前面增加: JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezo

生产环境中tomcat的配置

生产环境中要以daemon方式运行tomcat 通常在开发环境中,我们使用$CATALINA_HOME/bin/startup.sh来启动tomcat, 使用$CATALINA_HOME/bin/shutdown.sh来关闭tomcat. 而在生产环境中,我们要配置tomcat使其以daemon方式运行,这是因为: 以daemon运行不受终端影响,不会因为退出终端而停止运行 可以让tomcat以普通用户身份运行,可以让tomcat随linux启动而启动 如何将tomcat配置成守护进程 将tom

Tomcat 生产服务器性能优化

虑一下这种场景,你开发了一个应用,它有十分优秀的布局设计,最新的特性以及其它的优秀特点.但是在性能这方面欠缺,不管这个应用如何都会遭到客户拒绝.客户总是期望它们的应用应该有更好的性能.如果你在产品中使用了Tomcat服务器,那么这篇文章就会给你几方面来提升Tomcat服务器的性能.感谢ITWorld article给本文提供资源.经过沉思我已经知道了和早期版本相比最新的Tomcat提供更好的性能和稳定性.所以一直使用最新的Tomcat版本.现在本文使用下面几步来提高Tomcat服务器的性能. 增

linux生产环境精华优化实战配置(亲测)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 编写人:陈飞 邮箱:[email protected] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CentOS系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行.在此讲解几

利用ansible-playbook从测试环境获取tomcat中java项目新版本发布到生产环境

一.环境描述 安装有ansible的服务器:192.168.13.45 测试环境服务器:192.168.13.49 /home/app/api-tomcat/webapps/api.war为测试环境新版本war包位置 生产环境服务器:192.168.13.51 /home/app/api-tomcat/webapps/api.war为生产环境war包位置     /home/app/api-tomcat/webapps/api为生产环境项目位置 /home/app/tomcat.bak/api/

CentOS(5.8/6.4)linux生产环境若干优化实战------就爱运维

特别说明:本文来自就爱运维.特和所有博友分享.更多优化,请关注www.92yunwei.com后续内容以及分享. CentOS系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行.在此讲解几点关于Linux系统安装后的基础优化操作.注意:本次优化都是基于CentOS(5.8/6.4). 下面我就为大家简单讲解几点关于Linux系统安装后的基础优化操作. 注意:本次优化都是基于CentOS(5.8/6.4).关于5.8和6.4两者优化时的小区别,我会在文中提及的. 优化条目

CentOS(6.8)linux生产环境若干优化实战

CentOS系统安装之后并不能立即投入生产环境使用,需要经过运维人员的优化才行.在此讲解几点关于Linux系统安装后的基础优化操作. 注意:不同版本5.x和6.x两者优化时会有些区别. CentOS修改时区 echo 'ZONE="Asia/Shanghai"' > /etc/sysconfig/clock cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 优化条目: 1.   修改ip地址.网关.主机名.DNS等 2.

测试及生产环境tomcat配置

环境: 系统为suse11 sp1 软件版本: jdk1.7.0_80.zip apr.tar.gz apache-tomcat.tar.gz tomcat部署目录为/apps,应用以ebay为例 注意: 实际配置要根据实际环境做改变,仅供参考 1.jdk环境配置 root用户 unzip jdk1.7.0_80.zip -d /usr/local ln -s /usr/local/jdk1.7.0_80 /usr/local/jdk vi /etc/profile 添加 export JAVA

Nginx、Tomcat线上环境优化配置

 Nginx.Tomcat线上环境优化配置 Nginx优化: Nginx安全方面的优化: 1. nginx安全优化,在nginx配置文件http标签段内添加"server_tokens  off"即可隐藏访问或者报错时提示web版本号信息. 2. server_tokens参数可以在http,server,location的位置添加 3. 还可以修改nginx的3个源码文件 4. 如还需要安全优化更改端口.用户. nginx 性能优化: 对于nginx配置文件中对优化比较有作用的一般为