Chinaunix

标题: 交流一些比较实际的问题--Tomcat 性能优化问题 [打印本页]

作者: kns1024wh    时间: 2008-09-09 15:50
标题: 交流一些比较实际的问题--Tomcat 性能优化问题
现在很多的J2ee的应用都使用tomcat作为应用服务器,针对tomcat的优化有很多的文章在copy,希望能够交流一些具体的TOMCAT优化方式和实现的方法。
还有在大家的优化方案中要附加硬件资源信息,以及优化后能够接收的并发数量。
关键字:maxThreads 并发量关键参数,如果此参数低于预期的并发量,在并发到达时将出现大量的等待和位置状况。
作者: bbskuang    时间: 2008-09-09 16:11
单纯tomcat优化?

好像没啥好优化的
作者: heizi21    时间: 2008-09-10 11:54
据说tomcat运行一阵子就会死掉,是不是真的》?
作者: MYSQLER    时间: 2008-09-10 13:12
原帖由 heizi21 于 2008-9-10 11:54 发表
据说tomcat运行一阵子就会死掉,是不是真的》?




单独tomcat不适合生产应用
作者: leaf1981    时间: 2008-09-10 13:14
我的Tomcat 每晚必当掉一次
实在是找不到好的办法,写了一个shell,监视它,如果当掉就重启
无法通过shutdown.sh关,只能kill pid
作者: heizi21    时间: 2008-09-10 17:43
建议楼上把你的shell,共享出来,啊哈啊哈
作者: flb_2001    时间: 2008-09-11 08:54
看看这个
http://vod.sjtu.edu.cn/help/Arti ... 7&ArticlePage=1
作者: leaf1981    时间: 2008-09-11 13:07
/usr/local/bin/check_tomcat.sh

#!/bin/bash
##By Leif Updated:2008-07-02

email="/usr/local/email/bin/email"
RESTART="/usr/local/bin/reboot_tomcat.sh"
wget -q -O - -T 10 --tries=1 http://localhost | grep -q xxx.abc.com || {
   # Something is wrong, so restart
   eval "tail -200 /opt/tomcat/logs/error.log >/tmp/waperr.log;$email -b -s tomcat_error xxx </tmp/waperr.log";$RESTART
   exit $?
}
exit 0

wget -q -O - -T 10 --tries=1 http://localhost | grep -q xxx.abc.com
取一个关键字比如是域名,如果下取不到的话,则可以确定tomcat停止了响应(tomcat当掉或成为僵死进程),取出错误的日志(最后200行)发送到到xxx,再执行kill进程,启动tomcat

/usr/local/bin/reboot_tomcat.sh

#!/bin/bash
DIR=/opt/tomcat

cd $DIR
$DIR/bin/shutdown.sh
sleep 3
ps -ef |grep tomcat/bin/bootstrap.jar |grep -v grep|awk '{print $2}'|xargs kill -9

export  JAVA_HOME=/usr/local/jdk
export  CLASSPATH=$CLASSPATHJAVA_HOME/libJAVA_HOME/jre/lib
export  PATH=$JAVA_HOME/binJAVA_HOME/jre/binPATHHOMR/binANT_HOME/bin

$DIR/bin/startup.sh

exit 0

[ 本帖最后由 leaf1981 于 2008-9-11 14:28 编辑 ]
作者: xdj1012    时间: 2008-09-12 09:35
学习学习!
作者: xuxingyu    时间: 2008-09-12 15:13
那是你们程序本身有问题我的tomcat 半年没重启也没死过
作者: xuxingyu    时间: 2008-09-12 15:15
写一个静态的测试页面,然后用perl lwp模块很容易实现监控
作者: ppp_qqq    时间: 2008-09-12 17:04
原帖由 xuxingyu 于 2008-9-12 15:13 发表
那是你们程序本身有问题我的tomcat 半年没重启也没死过


由此可见,运维工作最好从前期系统设计时就介入
作者: zysno1    时间: 2008-09-18 15:25
原帖由 xuxingyu 于 2008-9-12 15:13 发表
那是你们程序本身有问题我的tomcat 半年没重启也没死过


是的。明显是程序有问题。检查一下是不是有程序溢出
作者: suchasplus    时间: 2008-09-19 13:44
原帖由 zysno1 于 2008-9-18 15:25 发表


是的。明显是程序有问题。检查一下是不是有程序溢出


原来这边写的java程序 每天tomcat死掉
后来仔细查了一下
是程序的问题,跟tomcat没关系
作者: exitgogo    时间: 2008-09-21 21:22
单纯tomcat没啥优化的,脱离程序,优化没有意义!
作者: yuio654    时间: 2008-09-28 22:18
原帖由 xuxingyu 于 2008-9-12 15:13 发表
那是你们程序本身有问题我的tomcat 半年没重启也没死过


支持一下,程序写的烂的话weblogic也一样当机,tomcat还是比较稳定的
作者: MacBook    时间: 2008-10-30 10:52
原帖由 xuxingyu 于 2008-9-12 15:13 发表
那是你们程序本身有问题我的tomcat 半年没重启也没死过

同意 我的tomcat应用服务器 上下行个10M/s的流量运行的都很稳定的。
个人认为容易出现问题的地方:
1.JVM内存分配的不够合理,可以用jstat监控一下 GC 尤其是FULL GC的情况
2.tomcat与数据库的连接部分(前段时间遇到过由于DBCP连接池的参数调整不当,导致高并发的时候tomcat连接耗尽导致服务挂起)
3.程序的问题(也是经常发生的问题),可以用ThreadDump来监控一下具体的问题。
作者: gamester88    时间: 2009-08-04 16:34
tomcat不会啊,一直都很好,应该是程序写的有问题吧
作者: godamen    时间: 2009-08-06 13:06
大量 ready 状态的线程是怎么会事啊?max threads依据什么调比较合适?
作者: jasonljj    时间: 2009-09-04 14:02
我个人觉得Tomcat还是不错的啊

连续运行几个月也还比较正常,至少不可能每天都死吧?

如果是那样,建议好好检查一下程序了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2