转载请标明出处:http://blog.csdn.net/goldenfish1919/article/details/47829755

我们先来做一个实验,用jmeter对tomcat下的一个jsp页面做压測:

(1)jsp的内容很easy,1.jsp:

<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>
<html>
<head><title>1.jsp</title></head>
<body>
this is 1.jsp
</body>
</html>

没有不论什么复杂的处理。仅仅是一个很easy的jsp页面。我们知道,tomcat默认会给每个jsp都启用session的。

(2)我们给tomcat设置启动參数,改动catalina.bat。加入:

set JAVA_OPTS=%JAVA_OPTS% -Xms64m -Xmx64m

(3)启动jmeter,设置100个线程模拟100个用户,然后不停的訪问这个页面,观察结果:

图中能够看出来,在请求数目到达33165的时候,tomcat已经内存溢出了。

(4)导出tomcat的内存映像文件:

jps -v:找到tomcat的pid

jmap -dump:format=b,file=tomcat.bin 6616

(5)用mat打开tomcat.bin:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

有没有非常惊讶。StandardSession居然有33197个。所占内存达到了52M!这是由于对每一个请求tomcat都会为其创建一个session导致的。

这里也说明一个问题:就算session里面什么也不存。默认就会占几乎相同1.5K!

所以,Session据对是一个重量级的对象!

(6)那么假设jsp中不生成Session是不是就不会有这个问题了?我们改一下jsp页面:

又一次做压測:

tomcat表示非常轻松。毫无压力。

结论:tomcat的session是一个很重量级的对象,初始化就占几乎相同1.5K的大小,能禁用则一定要禁用。

tomcat为什么要禁用session?的更多相关文章

  1. 【转】nginx+tomcat+memcached (msm)实现 session同步复制

    出现session不同步时,请放到content.xml中,实际验证有效: tomcat + memcached + nginx 实现session共享 这里重点强调如何实现linux服务器上 服务器 ...

  2. 【转】Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例 如,我们创建了一个名字为login的Cookie来包含访问者的信息,创建Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名 是“Michael J ...

  3. session服务器Nginx+Tomcat+Memcached集群Session共享

    cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jor ...

  4. Tomcat通过Memcached实现session共享的完整部署记录

    对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式:一种是把所有Ses ...

  5. Redis存储Tomcat集群的Session

    Redis存储Tomcat集群的Session 如何 做到把新开发的代码推送到到生产系统中部署,生产系统要能够零宕机.对使用用户零影响. 设想 是使用集群来搞定,通过通知负载均衡Nginx,取下集群中 ...

  6. Tomcat中负载的Session解决办法

    Tomcat进行请求的Session解决方式总体来说有三种, (1)使用Nginx或者Apache反向代理工具进行用户请求的分机器,在Tomcat的Engine中的标签中加入jvmRoute属性,指定 ...

  7. Nginx+Tomcat+Memcached实现tomcat集群和session共享

    一.Nginx安装 详见前文:http://www.cnblogs.com/yixiwenwen/p/3574097.html 二.memcached安装和启动 详见前文:http://www.cnb ...

  8. Tomcat会话保持之session server

    author:JevonWei 版权声明:原创作品 Tomcat会话保持之session server 拓扑图 环境 tomcatA 172.16.253.108 tomcatB 172.16.253 ...

  9. nginx+tomcat负载均衡和session复制

    本文介绍下传统的tomcat负载均衡和session复制. session复制是基于JVM内存的,当然在当今的互联网大数据时代,有更好的替代方案,如将session数据保存在Redis中. 1.安装n ...

随机推荐

  1. HP Z240组建磁盘阵列RAID1

  2. php保存远程图片

    php获取远程图片并把它保存到本地 来源:   时间:2013-09-05 19:26:57   阅读数:45006 分享到:1 [导读] 在php中我们经常使用写一些简单的采集功能,这样可以自动把远 ...

  3. guice基本学习,guice的学习资料(十)

    这个是我前面几篇的参考. guice的学习资料下载:http://pan.baidu.com/s/1bDEPem 路途遥远,但是人确在走.不忘初心,方得始终.

  4. mvc中Html.AntiForgeryToken的作用和用法

    参考:http://blog.csdn.net/cpytiger/article/details/8781457

  5. hadoop基础学习

    MR系类: ①hadoop生态 >MapReduce:分布式处理 >Hdfs:hadoop distribut file system >其他相关框架 ->unstructur ...

  6. C# 6.0新加特性

    1.自动属性的增强 1.1.自动属性初始化 (Initializers for auto-properties) C#4.0下的果断实现不了的. C#6.0中自动属性的初始化方式 只要接触过C#的肯定 ...

  7. HighCharts 图表插件 自定义绑定 时间轴数据

    HighCharts 图表插件 自定义绑定 时间轴数据,解决时间轴自动显示数据与实际绑定数据时间不对应问题! 可能要用到的源码片段:http://code.662p.com/list/14_1.htm ...

  8. JavaScript Math 对象常用方法

    Math.abs(x):可返回数的绝对值 Math.ceil(x):向上取整 Math.floor(x):向下取整 Math.max(x,y):最大值 Math.min(x,y):最小值 Math.r ...

  9. PhotoZoom官方这举动,大写服!

    上上周,PhotoZoom Classic7首次特惠活动大家都知道哈~~ 厂商福利限量30套,仅售99RMB,活动一经上线,半天时间一售而光,这说明不是大家不需要这个智能小软件啊,而是,可能,大概,也 ...

  10. centos7 redmine安装过程(转载)

    redmine 部署过程 redmin官方文档写的太烂加上不熟悉ruby搞了半天,回到家后觉得还是记录下好,希望可以帮助有需要的人,少走弯路. 版本说明 下面的版本很重要redmine 版本 3.3 ...