论坛首页 Java企业应用论坛

Tomcat对于流量稍大网站的设定改进

浏览 22116 次
精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2009-11-13  
1、linux+java6+nginx+tomcat6,可多配几个Tomcat
2、把你应用中是静态文件与动态文件分离开,尽可能做页面做成静态文件,由nginx转发,Tomcat只做动态请求部分。
3、将有规律性变动的数据做成静态文件,由后台引擎定时生成静态文件。

其实你类似的问题以前我也遇到过,很是头疼。改造之后系统平稳许多。希望对你有帮助
0 请登录后投票
   发表时间:2009-11-13  
toney_kissinger 写道
1、linux+java6+nginx+tomcat6,可多配几个Tomcat
2、把你应用中是静态文件与动态文件分离开,尽可能做页面做成静态文件,由nginx转发,Tomcat只做动态请求部分。
3、将有规律性变动的数据做成静态文件,由后台引擎定时生成静态文件。

其实你类似的问题以前我也遇到过,很是头疼。改造之后系统平稳许多。希望对你有帮助


我之前也有试过把动态的jsp转为静态的,
记得当时是在网上copy段java代码,也就是加一个过滤器,当第一次请求的时候生成html,可是好像第一次有一些问题,也还有其它一些因素,比如有些要记录日志,做成静态页面的话,写日志有一些麻烦。
不知道你们用什么引擎做静态页面的?
0 请登录后投票
   发表时间:2009-11-13  
bevis.cn 写道
toney_kissinger 写道
1、linux+java6+nginx+tomcat6,可多配几个Tomcat
2、把你应用中是静态文件与动态文件分离开,尽可能做页面做成静态文件,由nginx转发,Tomcat只做动态请求部分。
3、将有规律性变动的数据做成静态文件,由后台引擎定时生成静态文件。

其实你类似的问题以前我也遇到过,很是头疼。改造之后系统平稳许多。希望对你有帮助


我之前也有试过把动态的jsp转为静态的,
记得当时是在网上copy段java代码,也就是加一个过滤器,当第一次请求的时候生成html,可是好像第一次有一些问题,也还有其它一些因素,比如有些要记录日志,做成静态页面的话,写日志有一些麻烦。
不知道你们用什么引擎做静态页面的?



如果这样,你可以考虑将需要记录日志的页面缓存起来,定期清理缓存
0 请登录后投票
   发表时间:2009-11-13  
toney_kissinger 写道
1、linux+java6+nginx+tomcat6,可多配几个Tomcat
2、把你应用中是静态文件与动态文件分离开,尽可能做页面做成静态文件,由nginx转发,Tomcat只做动态请求部分。
3、将有规律性变动的数据做成静态文件,由后台引擎定时生成静态文件。

其实你类似的问题以前我也遇到过,很是头疼。改造之后系统平稳许多。希望对你有帮助



这位仁兄说的很对,在下补充几点:
1、如果是前端连几个tomcat,要注意session sticky
2、tomcat加上apr支持,这样的话,不用前端性能也会大大提高
3、thread不要设的太高,一般一个cpu200个,多了的话,线程切换反而导致性能下降。
4、记下每个请求的处理时间,找到时间最长的几个url,找出问题,解决之。具体方法可以写个filter即可。
5、关注下数据库的性能情况吧

0 请登录后投票
   发表时间:2009-11-13  
个人经验,tomcat默认的设置基本上是最优的,不需要把相关参数调整的过大,你看看tomcat源码就知道了,你们很多默认值都比较低,如果调整的太大,不合适。
你面临的这个问题的解决思路有几点

1.先查一下代码问题,是不是代码,或者数据库的瓶颈导致,最好跟踪一下。
2.如果应用与session无关,只需要nginx + 多个tomcat负载均衡一下就ok了。
3.与session有关,则tomcat集群
第一点很重要
0 请登录后投票
   发表时间:2009-11-13  
换个服务器估计会好点
0 请登录后投票
   发表时间:2009-11-13  
高并发请求下,处理请求时间过长,导致线程突增,再加上请求超时时间设置过大。线程图已经很清晰呈现问题所在。
0 请登录后投票
   发表时间:2009-11-13   最后修改:2009-11-13
线程开的太多了把?
tomcat6 是nio,不需要开那么大,开的越大,性能反而下降。
我之前测试过 tomcat6 开20个线程,性能要比开200个线程好。
tomcat5开200线程性能接近tomcat6开20个线程。
性能调整,以实际环境,实际压力测试结果为准。环境不一样,没有太大的参考性。
当然貌似用apr性能最好一点。
处理静态资源tomcat未必比apache慢,至少我之前测试过的结果是这样的。
使用apache主要是考虑到安全性,和利用apache已有的一些模块,比如说缓存等等之类。
如果只是处理静态资源,不配apache也可以。配了性能也不会有多少提高。
0 请登录后投票
   发表时间:2009-11-13  
用http代理+tomcat tomcat只负责动态处理jsp,servlet等。图片缓存都用代理静态解析,首页最好静态化,或缓存读取。
0 请登录后投票
   发表时间:2009-11-13  
connectionTimeout="20000",可以设置相对小一些。
http代理端能负责一些请求相应,其它就小下去了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics