`
sdyouyun
  • 浏览: 120788 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Tomcat6在高并发下要注意关闭session

阅读更多
最近偶尔发现,Tomcat6竟然在高并发下有内存泄露现象。这样看来Tomcat6确实不适合用在企业网站上。
得到这一结论的场景如下:用测试工具不停的访问一个jsp页面。jsp很简单,内容如下:
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>TestJSP</title>
</head>
<body>
Test
</body>
</html>

测试用100并发用户(绝对并发)、跑上十分钟Tomcat就Over了。加大Tomcat使用的虚拟机内存到512M,测试也撑不过半个小时。
在压力不是很大的情况下(100在线用户,每隔3秒访问一次jsp页面),倒是不会出现问题。

测试时用的jdk版本为sun的1.5.0_12。Tomcat6.0.14、6.0.13都存在此问题。而版本较低的5.0反而没有此问题。5.5版本据同事说也有同样的问题存在。



--------------------------------------------------------
华丽的分割线
--------------------------------------------------------

今天发现outofmemeory的原因了。
并不是tomcat的bug,问题出在session上。不停的访问一个jsp页面后,此jsp页面产生了大量的session存放在内存里,从而导致outofmemory。
在jsp页面中加上<%@ page session="false" %>就好了,或者测试时模拟用户访问时都模拟为一个浏览器进程,这样tomcat就不会重复的创建session了。
当然也可以限制session失效的时间。
哎 问题想明白了就这么简单,可是当时就是想不到。
分享到:
评论
7 楼 nbsven 2009-06-26  
今年新发布的web server软件UFO并发数可打1000,不会出现一个字节内存泄漏的问题,其软件发布网站www.gm365.com用的就是UFO。
6 楼 yuxie 2007-12-19  
噢噢
建议产生dump文件分析一下,看问题出在哪里,给apache tomcat邮件列表里边说一下
5 楼 sdyouyun 2007-12-18  
  俺都说了就1个并发也会出问题了,你还在这里讨论100并发~
测试的页面那么简单,在tomcat5.0上测试一点问题都没有……
4 楼 yuxie 2007-12-17  
100并发是个很高的数字,除了门户,内部应用绝少能到这个程度。(想想100连接数的oracle多少钱?),这种情况还使用单机的tomcat+512内存跑已经意义不大了。另外这种情况对操作系统、网络环境等的配置要求都很高,没有良好的实验环境,做这种测试无意义亚无意义
3 楼 anyinger 2007-12-07  
关于内存泄漏现象,Tomcat一直就存在,Tomcat现在一些企业级的服务器也都在用,如果出现这样的问题的话,肯定其他服务器就不会用了,所以,估计是Tomcat的某些补丁没有下载下来。
再就是,二楼所说的“无间隔”,我觉得二楼说的也有道理。
2 楼 sdyouyun 2007-12-06  
这里的关键到不在与“100并发”,而在于访问的时候“无间隔”。
只要一个并发用户,连续无间隔的访问一个jsp页面刷上十几分钟,也足以把tomcat搞瘫痪掉。
1 楼 xj4150 2007-12-06  
100并发?普通网站足以。不过还是太少了,之前看到一篇帖子说tomcat的并发可以到300(好像是300,记不清啦)。自己没试过,不好说

相关推荐

    tomcat实现session共享

    在IT行业中,尤其是在Web应用开发领域,服务器集群和session共享是一个关键问题。当多个服务器共同处理用户请求时,保持用户会话(session)的...同时,这也体现了IT行业对高并发、分布式处理能力的需求以及应对策略。

    redis+tomcat之间session共享包.rar

    这种架构在微服务、云环境或高并发场景下特别有用,因为它能够有效地解决分布式系统中的 Session 共享问题。同时,Redis 作为持久化的存储,还提供了数据备份和恢复的能力,增强了系统的健壮性。

    tomcat-redis-session-manager-master.zip

    这样可以提高可扩展性和数据持久性,尤其适用于分布式部署或高并发的环境。 描述中的文件名 "commons-pool2-2.3.jar" 是Apache Commons Pool库的版本2.3,这是一个通用的对象池服务。对象池是预先创建一组对象并...

    nginx_tomcat_redis搭建负载均衡共享session

    在负载均衡场景下,我们可能需要运行多个Tomcat实例,每个实例都在不同的服务器上或者同一服务器的不同端口上,以分散负载。 接下来是Redis,它是一个开源的、基于键值对的数据结构存储系统,常用于缓存和数据库。...

    tomcat8.5.59

    Tomcat是Apache软件基金会下的一个开源项目,是一款广泛使用的Java Servlet容器,它实现了Java EE的Web应用程序规范。在本文中,我们将详细探讨Tomcat 8.5.59版本,这是Tomcat 8.x系列的一个稳定版本,具有诸多改进...

    linux配置Tomcat集群

    在Linux环境下配置Tomcat集群,主要目的是构建一个能够实现水平扩展、具备高可用性、支持负载均衡以及错误恢复能力的服务架构。通过集群的方式,可以提高系统的稳定性和处理并发请求的能力。 #### 二、许可证与文档...

    Session(实例)

    在实际应用中,我们还需要考虑Session的管理,包括设置Session的超时时间、处理Session失效后的逻辑,以及在高并发环境下如何有效地存储和查找Session数据等。在大型Web应用中,可能还会使用Session复制或Session...

    tomcat中文帮助文档

    Tomcat支持多种连接器,如APR(Apache Portable Runtime)连接器提供更高效的网络I/O,而NIO(非阻塞I/O)连接器适合高并发场景。 14. **管理工具** Tomcat内置了管理工具,如`manager`应用,允许通过Web界面管理...

    Tomcat性能优化

    3. **连接器优化**:调整连接器(Connector)的属性,如最大连接数(maxConnections)、超时时间(connectionTimeout)等,确保高并发下的高效处理。 4. **JVM参数优化**:使用适当的GC算法(如G1或Parallel GC),...

    通过Nginx搭建Tomcat9集群并实现Session共享

    在IT行业中,构建高可用和高并发的Web应用系统是至关重要的。为了达到这个目标,通常我们会使用负载均衡技术,将流量分散到多个服务器上,形成一个集群。在这个过程中,`Nginx`常被用作反向代理服务器,而`Tomcat`则...

    apache+tomcat+memcached

    【Apache + Tomcat + Memcached】集群环境搭建详解 在构建高性能、高可用性的Web服务时,Apache服务器、Tomcat应用服务器以及...这种架构适用于高并发、高访问量的Web应用,能够有效地提升系统容错能力和扩展性。

    tomcat9.zip

    1. **核心功能**:Tomcat9支持Servlet 4.0、JSP 2.3和EL 3.0等最新标准,提供了HTTP/2协议的支持,这使得它在处理高并发请求时表现出色。此外,Tomcat9还包含了对WebSocket的全面支持,使得实时通信变得更加便捷。 ...

    java_session共享配置.jar

    Java_session共享配置主要涉及到Web应用中的会话管理,特别是如何在多服务器环境下保持用户会话的一致性。这里提到的几个jar文件是实现这一目标的关键组件。下面将详细讲解每个文件的作用及其背后的原理。 首先,`...

    tomcat 7.0

    APR连接器通过JNI接口与操作系统进行更紧密的交互,通常在高并发环境下表现更佳。 4. **更好的安全管理**:Tomcat 7引入了用户角色和权限管理的增强,支持基于角色的访问控制(RBAC)。可以在`conf/tomcat-users....

    tomcat中文手册.chm

    2. 负载均衡:使用负载均衡器分配请求到多个Tomcat实例,实现高并发处理。 九、故障排查 1. 查看日志:错误信息通常在`logs/catalina.out`中。 2. 使用JMX工具:远程诊断和管理Tomcat实例。 3. 调试模式:通过设置...

    TOMCAT7.0绿色版

    它支持NIO(非阻塞I/O)和 APR(Apache Portable Runtime)接口,这可以提高服务器在高并发情况下的性能。特别是APR,利用操作系统级别的特性,如sendfile和epoll,进一步提升了网络通信的效率。 安全性方面,...

    深入剖析Tomcat 随书 源码

    在性能优化方面,Tomcat提供了多线程模型,通过调整线程池参数(如maxThreads、minSpareThreads等)可以优化并发处理能力。此外,还可以通过压缩响应、缓存静态资源、减少session使用等方式提高性能。 安全性是另一...

    session 存入数据库

    在Web开发中,Session是一种非常重要的机制,用于在服务器端维护用户的状态信息。当用户登录网站后,服务器会为该用户创建一个唯一的...实现时需注意数据序列化、数据库设计、并发控制以及生命周期管理等关键技术。

    Apache和Tomcat实现集群和负载均衡(WindowsNT)

    1. 在Tomcat的`conf`目录下的`context.xml`文件中,为测试应用开启session复制功能。 ``` &lt;Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false"/&gt; ``` 2. ...

Global site tag (gtag.js) - Google Analytics