`
bevis.cn
  • 浏览: 153990 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多
前段时间一个项目,因为网站架构设计不合理,用户也用了快两年了,可是今年开始他们和其它网站合作,比如yahoo,这样的话,流量可能比较大,所以常常当机。
前几天有对程式进行少量的修改,然后调整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开始陡增
  • 大小: 176.4 KB
分享到:
评论
12 楼 ubotutwin 2009-11-12  
<p>      你主机内存占用和cpu占用应该都不太高,可以搞个垂直集群加大硬件的利用率,毕竟tomcat对多核的支持海不如weblogic什么的好。</p>
11 楼 kaki 2009-11-12  
用nginx做代理吧。
10 楼 elf8848 2009-11-12  
引用
PermGen只有60M,且完全用完!

PermGen全用完不是好现象,可能会出现java.lang.OutOfMemoryError: PermGen space 导致当机.
就算不会出现java.lang.OutOfMemoryError: PermGen space 错误,PermGen区还是要保留一定的空闲空间才放心.

建议:
1 加两个jvm参数:"-Xms628m -Xmx1024m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m"
2 不使用SUN的jvm,改用BEA的jvm,会回收PermGen 区.


以上只是从jvm内存方面做了分析.
9 楼 hellolaojiang 2009-11-12  
如果是网站的话,静态流量应该占很大比例.使用 Apache httpd + Tomcat 的组合要好过只用Tomcat的情况.让Apache http server处理静态文件,Tomcat只负责处理动态页面.
8 楼 zwq4166506 2009-11-12  
建议加个apache web server,这样应付高并发会好很多
7 楼 lixjluck 2009-11-12  
可以换用linux2.4+jdk1.6试试

从你的描述看,你们的应用不是CPU密集型应用,那就卡到IO了
比如数据库,搜索引擎等
6 楼 bevis.cn 2009-11-12  
zhxp791008 写道
看起来,cpu和内存都不是你性能问题的地方。
超时可以设置小些。java内存不用再调大了,线程数不要设置多了,500足够了。线程过多反而会降低性能。
会不会是你的数据库性能有问题,java应用一直等待数据库完成,导致整个应用变慢。

这个倒是有可能的!因为早期设计的不是很合理
5 楼 zozoh 2009-11-12  
这个问题,我一直也很头疼
4 楼 zhxp791008 2009-11-12  
看起来,cpu和内存都不是你性能问题的地方。
超时可以设置小些。java内存不用再调大了,线程数不要设置多了,500足够了。线程过多反而会降低性能。
会不会是你的数据库性能有问题,java应用一直等待数据库完成,导致整个应用变慢。
3 楼 bevis.cn 2009-11-12  
jncz 写道
有观察的GC的内容吗
另外,活动线程这么多,那么Xmx是不是小了


不会耶,我设的内存在最小内存是600多M,最大内存是从visual VM中看到的结果只用到了700M不到!
2 楼 sw1982 2009-11-11  
线程会不会太大了?砍到500试试咯。
connectionTimeout="20000" ,超时太长了,一旦失败也会阻塞很久
1 楼 jncz 2009-11-11  
有观察的GC的内容吗
另外,活动线程这么多,那么Xmx是不是小了

相关推荐

    各种版本tomcat压缩包

    对于大型或高流量网站,可能还需要考虑负载均衡和集群配置。 8. **日志与监控**: Tomcat的日志系统可以帮助开发者调试和诊断问题,通过调整logging.properties文件可以定制日志级别和输出格式。JMX(Java ...

    Tomcat7 64位机运行问题处理

    在提供的文件“解决64位系统运行tomcat问题”和“tomcat-users设定问题”中,可能包含了更多具体问题的解决方案和示例配置。阅读并按照其中的指南操作,有助于解决特定的故障。记住,始终保持Tomcat和JDK的更新,以...

    Tomcat优化相关问题.pdf

    Tomcat作为一款广泛使用的Java应用服务器,其性能优化对于提升Web应用的响应速度和稳定性至关重要。以下是一些针对Tomcat的调优策略: 1. **JVM参数调优**: - `-Xms&lt;size&gt;`:设置JVM初始堆内存大小。这决定了JVM...

    java websocket

    这种客户端是主动方,服务端是被动方的传统Web模式 对于信息变化不频繁的Web应用来说造成的麻烦较小,而对于涉及实时信息的Web应用却带来了很大的不便,如带有即时通信、实时数据、订阅推送等功能的应 用。...

    第三讲-压力测试实战、性能瓶颈分析及服务优化实战.pdf

    前端系统设计为一个模拟唯品会秒杀场景的应用,所有商品都设定为秒杀商品,具有库存限制和时间限制,以模拟真实的抢购环境。这一部分强调了前端对于用户体验和系统稳定性的关键作用。 【阿里云环境】 课程中介绍了...

    UrlRewriter Java v2.0 RC1

    UrlRewriter Java v2.0 RC1 是一个用于Java应用程序的URL重写库,它主要用于改进网站的SEO(搜索引擎优化)以及实现灵活的URL映射规则。这个版本是Release Candidate 1,意味着它是即将正式发布的稳定版本前的一个...

    程序员简历模板3.docx

    在工作经验方面,该程序员从2016年9月至今在XX简历信息科技有限公司担任JAVA开发工程师,主要贡献包括改进模拟退火算法在MATLAB平台上的实现,提高了算法精确度至99%,并成功申请了一项专利——基于多相位模拟退火...

    ipqtraffic web statistics-开源

    总之,IPQtraffic Web统计提供了一种开源且灵活的方式来管理和理解网络流量,对于任何需要监控网络性能的组织来说,都是一个有价值的工具。通过深入学习和使用,你可以更有效地管理和优化你的网络环境。

    《网络营销与策划》试题及答案.docx

    - **重要性**: 反映网站流量和用户兴趣度。 #### 二、问答题知识点解析 11. **电子支付** - **定义**: 电子交易中的货币支付或资金流转。 - **特点**: 安全、高效、便捷。 - **应用**: 在线购物、缴费等。 ...

    JAVA上百实例源码以及开源项目源代码

    设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节 通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后...

Global site tag (gtag.js) - Google Analytics