锁定老帖子 主题:Tomcat对于流量稍大网站的设定改进
精华帖 (1) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-11
最后修改:2009-11-12
前几天有对程式进行少量的修改,然后调整tomcat的一些设定,性能方面,也比原来好很多,但是还是有一些吃力: 后来在正常我网络环境下压力测试,最高峰的时候,38,337次/小时请求首页 但是反应时间有些长, 后来我用软件看一下jvm的情况: liveThreads :1228 demoThreads:1229 Heap都还有很多空白,没有怎么用完。 PermGen只有60M,且完全用完! 线程已经达到我开的值,所以反应时间长,可能是因为tomcat请求数已经满了,再来的请求就要排队。 下面把这个系统的运行环境给大家看一下,大家帮我看一下,还有没有哪里需要改善的 1.软件硬件环境 Intel(R) Xeon(R) cpu 5130 2.00GHz,2.00GHz 3.12GB RAM server 2003 sp2 Tomcat6.0.13免安装版 JDK 1.5 2.Tomcat 下server.xml的一些设定 <Connector port="80" maxHttpHeaderSize="8192" maxThreads="1200" minSpareThreads="80" maxSpareThreads="300" maxKeepAliveRequests="200" enableLookups="false" redirectPort="8443" acceptCount="800" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> 3. 内存是在catalina.bat里设定 set JAVA_OPTS=-Xms628m -Xmx1028m 在系统进行压力测试的情况下: cpu占用在18%--70%(这是从任务管理器里看到的) 内存:1.18G(这是从任务管理器里看到的) liveThreads :1228 (这是从visualvm里看到的) demoThreads:1229(这是从visualvm里看到的) Heap都还有很多空白,没有怎么用完。 PermGen只有60M,且完全用完! 这里我有一点奇怪,我明明设的maxThreads="1200" ,为什么这里会达到1228 附件中有个图片,是我在visualvm中看到的结果, 从16:00开始测试的,所以各种数据都是从16:00开始陡增 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-11
有观察的GC的内容吗
另外,活动线程这么多,那么Xmx是不是小了 |
|
返回顶楼 | |
发表时间:2009-11-11
线程会不会太大了?砍到500试试咯。
connectionTimeout="20000" ,超时太长了,一旦失败也会阻塞很久 |
|
返回顶楼 | |
发表时间:2009-11-12
jncz 写道 有观察的GC的内容吗
另外,活动线程这么多,那么Xmx是不是小了 不会耶,我设的内存在最小内存是600多M,最大内存是从visual VM中看到的结果只用到了700M不到! |
|
返回顶楼 | |
发表时间:2009-11-12
看起来,cpu和内存都不是你性能问题的地方。
超时可以设置小些。java内存不用再调大了,线程数不要设置多了,500足够了。线程过多反而会降低性能。 会不会是你的数据库性能有问题,java应用一直等待数据库完成,导致整个应用变慢。 |
|
返回顶楼 | |
发表时间:2009-11-12
这个问题,我一直也很头疼
|
|
返回顶楼 | |
发表时间:2009-11-12
zhxp791008 写道 看起来,cpu和内存都不是你性能问题的地方。 超时可以设置小些。java内存不用再调大了,线程数不要设置多了,500足够了。线程过多反而会降低性能。 会不会是你的数据库性能有问题,java应用一直等待数据库完成,导致整个应用变慢。 这个倒是有可能的!因为早期设计的不是很合理 |
|
返回顶楼 | |
发表时间:2009-11-12
可以换用linux2.4+jdk1.6试试
从你的描述看,你们的应用不是CPU密集型应用,那就卡到IO了 比如数据库,搜索引擎等 |
|
返回顶楼 | |
发表时间:2009-11-12
建议加个apache web server,这样应付高并发会好很多
|
|
返回顶楼 | |
发表时间:2009-11-12
如果是网站的话,静态流量应该占很大比例.使用 Apache httpd + Tomcat 的组合要好过只用Tomcat的情况.让Apache http server处理静态文件,Tomcat只负责处理动态页面.
|
|
返回顶楼 | |